1

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
    }
}

ばかげた質問かもしれませんが、そのようなことは私の任務にとって非常に有益です。

4

2 に答える 2

3

なぜだめですか。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();
于 2013-07-27T03:48:21.827 に答える
1

このようなものはどうですか?

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));
于 2013-07-27T03:52:04.143 に答える