2017-11-06 8 views
0

現在、ユーザーは温度の値を入力しており、温度に基づいて推奨しています。ユーザーが "N"または "n"を押すまで入力を求めるループをセットアップしたいと思います。例えば無限ループを使用して任意のキーを押してプログラムを再起動し、特定のキーを押したままループを終了する

//ユーザー入力

//一時勧告//続行しますか?任意のキー、Nまたはnを押して終了します。

もう一度キーを押すとユーザーの入力が要求され、Nまたはnを入力すると、画面にユーザーに感謝の気持ちが表示されなくなります。教授は、期待される結果を得るために追加の方法を使用することを提案しました。

現在の不正なコード:

Console.WriteLine("Continue? Press any key to continue, N or n to exit:\n"); 
{ 
if (Console.ReadKey().Key == ConsoleKey.N) 
else if (Console.ReadKey().Key == ConsoleKey.n) 
return;} 
} 
Console.WriteLine("Thank you"); 
+0

どのように間違っていますか?期待どおりにエラーを投げたり、機能しなかったりしますか? –

+0

else if行に問題があります。 "ConsoleKeyにはnの定義が含まれていません" – zMisterP

+0

次回は質問に入れてください - 私たちは読者ではありません。私はConsoleKeyとその真実を調べました - nの定義はありません:https://msdn.microsoft.com/en-us/library/system.consolekey(v=vs.110).aspx –

答えて

0

は、あなたが利用することができ

while(true) 
{ 
    //process temperature conversion 
    Console.Write("Continue? Press any key to continue, N or n to exit:"); 
    if (Console.ReadKey().Key == ConsoleKey.N) 
    { 
    break; 
    } 

} 
+0

@mjwillsは、それに感謝しています。私はOPが与えたものを取った。 答えを更新しました(2行分のコードを失ったので、実際はもっとうまくいきます) – zaitsman

0

を入力します。 whileループのローカル変数は次のようになります。

static void main(string[] args) 
{ 
    bool keepGoing = true; 

    while (keepGoing) 
    { 
     DoYourWork(); 

     Console.WriteLine("Continue? Press any key to continue, N or n to exit:"); 

     var userWantsToContinue = Console.ReadLine(); 

     keepGoing = userWantsToContinue?.ToUpper() != "N"; 
    } 
} 
1

ループを終了しブレークを使用することができますdo..whileループ:)

private static void DoWhatever(string data) 
{ 
    // process your temp 
} 

// inside main somewhere 
Console.WriteLine("Enter temp:"); 

do 
{ 
    var temp = Console.ReadLine(); 
    DoWhatever(temp); 
    Console.WriteLine("Continue? Press any key to continue, N or n to exit:\n"); 
}while(Console.ReadKey().Key != ConsoleKey.N); 
Console.WriteLine("Thank you"); 
-1

このシナリオでは十分です。

static void Main(string[] args) 
{ 

bool continue = true; 
while(continue) 
{ 
Process();  
Console.Writeline("Do you want to continue? Press N or n to Exit."); 
var userInput = Console.Readline(); 
continue = userInput?.ToUpper() != "N"; 
} 
} 
関連する問題