2016-04-02 18 views
-3

switch文を2回だけループすることができました。 2回目の後、スイッチのケースから選択したオプションに関係なく、コンソールが閉じます。ユーザーが停止することを決定するまでスイッチケースをループし続けるように、コードを変更する方法はありますか?ステートメントを2回出力した後にwhileループを続行するにはどうすればよいですか?

ありがとうございます。

int userChoice = 0; 

Console.WriteLine("This is an application. It has many different modes."); 
Console.WriteLine("You can activate the mode of the application, which can be inserting, retrieving, printing, saving or uploading."); 
Console.WriteLine("Type 'I' to insert, 'R' to retrieve, 'P' to print, 'S' to save, 'U' to upload the data, or 'T' to terminate the application."); 

string mode = Console.ReadLine(); 

switch (mode) 
{ 
    case "I": 
     Console.WriteLine("You have chosen to insert the data."); 
     break;       

    case "R": 
      Console.WriteLine("You have chosen to retrieve the data."); 
      break; 

    case "P": 
     Console.WriteLine("You have chosen to print the data."); 
     break; 

    case "S": 
     Console.WriteLine("You have chosen to save the data."); 
     break; 

    case "U": 
     Console.WriteLine("You have chosen to upload the data."); 
     break; 

    case "T": 
     Console.WriteLine("You have chosen to terminate the application.");      
     return;       
} 

// Two modes, quit option 
if (mode == "I" || mode == "R") 
{ 
    Console.WriteLine("The application will stay in the insert or retrieve modes. Press 'Q' to exit to the modes to return to the main menu."); 
} 

while (userChoice != 0) 
{ 
    Console.WriteLine("Please choose one of the modes {0}.", userChoice);     
      userChoice++; 
} 

Console.WriteLine("Type 'I' to insert, 'R' to retrieve, 'P' to print, 'S' to save, 'U' to upload the data, or 'T' to terminate the application."); 
Console.ReadLine(); 
+2

*内側*ループ –

+1

があなたのswitch文は、任意のループ –

答えて

1

あなたは、この(擬似コード)のようなもの

あなたが実行したいコードを配置する必要があり
bool finished 
while(!finished) //Loop until they make a choice 
{ 
    Console.WriteLine("Type 'I' to insert, 'R' to retrieve, 'P' to print, 'S' to save, 'U' to upload the data, or 'T' to terminate the application."); 
    var input = Console.Readline(); 
    switch(input) 
    { 
     //Respond to the input. If the input should cause the application 
     //to terminate, set finished = true 
    } 

    if(!finished) 
    { 
     //Indicate that the user can make more choices 
    } 
} 

// The loop exits when finished = true, and the program ends 
+0

に含まれていないをしたいように見えます私はwhileループの中に自分のコードを入れて、うまくいきました。しかし、私はboolの代わりにint型を使用しています。どうもありがとうございました。 – Luzing

関連する問題