[英]I don't make it into the while loop: switch statement
我只是想了解switchstatement。 我的 porgram 是關於找到正確的案例來打破循環,但它不起作用。
我已經輸入了這個,但是當我啟動程序時,它永遠不會進入我的 while 循環
class Program {
static void Main(string[] args) {
string name;
int number = 4;
Console.WriteLine("welcome, you need to find yourself.");
Console.WriteLine("but first tell me your name.");
name = Convert.ToString(Console.ReadLine());
Console.Clear();
Console.WriteLine("what a nice name " + name);
Console.WriteLine("press a key to continue");
Console.ReadKey();
while (number != 4) {
Console.Clear();
Console.WriteLine("pick a number between 1-4.");
number = Convert.ToInt32(Console.ReadLine());
switch (number) {
case 1:
case 2:
case 3:
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("you're not here.");
break;
case 4:
Console.Clear();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("you found " + name + " Congratz!");
break;
default:
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Press a key to try agian :(");
Console.ReadKey();
break;
}
}
}
}
}
如果條件不匹配(您的條件不匹配),則永遠不會執行循環。 也許嘗試一個do-while循環。
int number = 4;
while(number != 4)
{
//will never run.
}
do
{
//will run at least once.
} while(number != 4);
解決方案:
如果您仔細注意到您已將變量number
聲明為4
。
[ int number = 4;
]
並且在循環之外再也沒有修改過它。
因此, number
的值仍然是4
並且永遠不會改變!!
這是我使代碼正常工作的建議:
查看您希望用戶輸入的代碼按任意鍵,然后(我不知道哪個鍵設置為正確)當用戶輸入右鍵時循環將開始(永遠不會開始,因為您的number
始終等於4
直到它進入循環)。 然后將實現簡單的 switch case,但讓我有疑問的是,每次循環運行時你都在輸入 -對- 直到用戶輸入有效輸入。 但是您還提供了在循環內的問題中輸入的內容, default
是press a key try again
。 我認為 output 會以這種方式(循環運行后) :
Press a key to try agian:(
控制台清除
pick a number between 1-4.
而且我認為這沒有意義。
最后注:
number
值或更改while 循環條件以進行循環!和
@Jack T. Spades的想法也會奏效!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.