[英]Console application Menu issues in c#
我對 C# 很陌生(嗯,一般編程)我正在嘗試為 ac# 控制台應用程序創建一個菜單。 從菜單中進行選擇后,菜單不斷重新出現...我研究並嘗試了許多不同的選項,但似乎沒有任何效果對我有用....我知道我做錯了一些愚蠢的事情。 任何建議或指導將不勝感激。 提前致謝。
static void Main() //Start of program
{
//Menu and other UI stuff
int userSelection = 0;
do
{
Console.WriteLine("[1] Encryption");
Console.WriteLine("[2] Decryption");
Console.WriteLine("[3] Exit");
Console.Write ("Please choose an option 1-3: ");
userSelection = Int32.Parse(Console.ReadLine());
switch(userSelection)
{
case 1:
readFile();
break;
case 2:
decryption();
break;
case 3:
Environment.Exit(0);
break;
default:
Console.WriteLine("Your selection is invalid. Please try again.");
break;
}
}
while (userSelection != 4);
}
你的 do/while 只會在你的 userSelection 值為 4 時停止,在這個例子中,它永遠不會發生。
將您的 while 條件更改為
while(userSelection <= 0 || userSelection > 3)
應該可以解決...
也許你想使用類似的東西:
int userSelection = 0;
bool validAnswer = false;
do
{
Console.WriteLine("[1] Encryption");
Console.WriteLine("[2] Decryption");
Console.WriteLine("[3] Exit");
Console.Write ("Please choose an option 1-3: ");
userSelection = Int32.Parse(Console.ReadLine());
switch(userSelection)
{
case 1:
readFile();
validAnswer = true;
break;
case 2:
decryption();
validAnswer = true;
break;
case 3:
validAnswer = true;
Environment.Exit(0);
break;
default:
Console.Clear();
Console.WriteLine("Your selection is invalid. Please try again.");
break;
}
}while (!validAnswer);
它不斷重新出現,因為您將代碼置於do while
循環中。 如果您只想運行此代碼一次,不要使用循環結構,只需將其直接放在Main
。
如果你使用類似的東西
do
{
// ...
}
while (userSelection != 4);
循環內的代碼將重復,直到用戶輸入4
。
來自 msdn 文章do while :
do 語句重復執行一個語句或一個語句塊,直到指定表達式的計算結果為 false。
另一種選擇是在switch
塊之后使用break
語句。
class Program
{
static void Main() //Start of program
{
//Menu and other UI stuff
string userSelection;
do
{
Console.Clear();
Console.WriteLine("[1] Encryption");
Console.WriteLine("[2] Decryption");
Console.WriteLine("[3] Exit");
Console.Write("Please choose an option 1-3: ");
userSelection = Console.ReadLine();
switch (userSelection)
{
case "1":
Console.WriteLine("mission 1");
break;
case "2":
Console.WriteLine("mission 2");
break;
case "3":
Environment.Exit(0);
break;
default:
Console.WriteLine("Your selection is invalid. Please try again.");
break;
}
Console.ReadLine();
}
while (true);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.