简体   繁体   English

C#switch语句验证

[英]C# switch statement validation

I was wondering if there was a way to do something like this in C#: 我想知道是否有办法在C#中做这样的事情:

some loop here
{
    Console.WriteLine("Please enter a or b");
    switch (Console.ReadLine().ToLower())
    {
        case "a":
            //some code here
            break;
        case "b":
            //some code here
            break;
        default:
            Console.WriteLine("Error, enter a or b");
            repeat loop
    }
}

It's probably a stupid question but something like that would be greatly beneficial to my assignment. 这可能是一个愚蠢的问题,但这样的事情对我的任务大有裨益。

Why not. 为什么不。 Run a while loop that exists only when a or b is entered. 运行仅在输入a或b时存在的while循环。

bool condition = false;

Console.WriteLine("Please enter a or b");
string str = string.Empty;
while (!condition)
{
     str = Console.ReadLine().ToLower();
     switch (str)
     {
         case "a":
             //some code here
             condition = true;
             break;
         case "b":
             //some code here
             condition = true;
             break;
         default:
             Console.WriteLine("Error, enter a or b");
             break;
     }
 }
 Console.WriteLine("You have entered {0} ", str);
 Console.ReadLine();

What about something like this? 这样的事情怎么样?

var acceptedValues = new List<string>()
{
    "a",
    "b",
};

Console.WriteLine("Please enter {0}", string.Join("or", acceptedValues));
var enteredValue = string.Empty;
do
{
    enteredValue = Console.ReadLine().ToLower();
} while (!acceptedValues.Contains(enteredValue));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM