0

コンソールアプリのループの最後に、ユーザーからの入力を受け入れてループを再実行するか、Y/N の質問をしないかを理解しようとしています。

4

6 に答える 6

4
bool executeLoop = true;

while (executeLoop)
{
    ...

    Console.WriteLine("Again? (Y/N)");
    string input = Console.ReadLine().ToUpper();

    while (input != "N" && input != "Y")
    {
        Console.WriteLine("Invalid answer. Again? (Y/N)");
        input = Console.ReadLine();
    }

    if (input == "N")
    {
        executeLoop = false;
        // can also just write "break;"
    }
}

この部分は、答えがYまたはNのいずれかであることを検証します。

while (input != "N" && input != "Y")
{
    Console.WriteLine("Invalid answer. Again? (Y/N)");
    input = Console.ReadLine();
}

また、その部分を削除して、「N」以外のすべての入力がループを継続するようにすることもできます。

もう1つの簡単な方法は次のとおりです。

while (true)
{
    ...

    Console.WriteLine("Enter \"Y\" to continue...");

    if (Console.ReadLine().ToUpper() != "Y")
    {
        break;
    }
}

ユーザーが「Y」以外を入力するまでループが実行されるようにします。

于 2012-09-24T03:54:58.360 に答える
3

Console.ReadKeyユーザーからキー入力を取得するために使用します。

while (true)
{
     Console.Write("End program Y/N: ");
     char input = Console.ReadKey().KeyChar;
     if (input == 'Y' || input == 'y') break;

     Console.WriteLine();
}
于 2012-09-24T03:57:36.340 に答える
0
do
{
    if(!somecondition){ continue; }

    DoSomething();

    Console.WriteLine("Do something again? (y = yes)");
}
while(Console.ReadKey().Key == ConsoleKey.Y);
于 2012-09-24T04:39:58.740 に答える
0

これはどうですか

string s;
    do
    {
        // some statements
       s = Console.ReadLine();
    } while(s=="yes");
于 2012-09-24T03:55:23.170 に答える
0

do while ループを実行します。

do 
{
  //do other stuff first
  //then get input to Y and N question and set it
} while (input == 'Y');
于 2012-09-24T03:52:46.400 に答える
0

ループから抜け出したいときは、break コマンドが使えます。各休憩は、現在の最小のループから抜け出すだけであることに注意してください。

        int count = 0;
        string myentry = "";
        for (count = 1; count < 10; count++)
        {
            Console.WriteLine("count=" + count);
            Console.WriteLine("Continue? Enter \"Y\" or \"N\"");
            myentry = Console.ReadLine().ToUpper();
            if (myentry=="N")
            {
                break;
            }

        }
于 2012-09-24T04:02:11.030 に答える