簡體   English   中英

我沒有進入 while 循環:switch 語句

[英]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,但讓我有疑問的是,每次循環運行時你都在輸入 -- 直到用戶輸入有效輸入。 但是您還提供了在循環內的問題中輸入的內容, defaultpress a key try again 我認為 output 會以這種方式(循環運行后)

Press a key to try agian:(

控制台清除

pick a number between 1-4.

而且我認為這沒有意義。


最后注:

  1. 重新設計代碼邏輯並嘗試!
  2. 值得注意的是,您必須更新您的number更改while 循環條件以進行循環!

@Jack T. Spades的想法也會奏效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM