簡體   English   中英

條件不成立時While循環不循環C#

[英]While Loop not looping when condition is not true C#

我正在編寫C#控制台程序,這是我的作業的一部分。 我要在這里做的是每次用戶輸入無效內容時都顯示該消息。 但是,當我做出正確選擇后輸入無效內容時,它只會顯示一次錯誤消息。 消息后,我做出一個有效選擇,然后做出一個無效選擇,它退出控制台。 我還希望它在用戶輸入有效數字時顯示正確的消息,但是選擇無效后不會連續發生。 它只是退出控制台...我嘗試使用“ ||” 而不是根本不起作用的“ &&”。

我是編程的絕對入門者,所以如果我做錯了任何事情,請幫助我。

Console.WriteLine("Enter 1, 2, 3, OR 4");
        uI = int.Parse(Console.ReadLine());

        while (uI != 1 && uI != 2 && uI != 3 && uI != 4)
        {
            Console.WriteLine("SELECT 1, 2, 3, OR 4");
            uI = int.Parse(Console.ReadLine());
        }
        if (uI == 1)
        {
            Console.WriteLine("msg");
            Console.WriteLine("SELECT 1, 2, 3, OR 4");
            uI = int.Parse(Console.ReadLine());
        }
        if (uI == 2)
        {
            Console.WriteLine("msgg");
            Console.WriteLine("SELECT 1, 2, 3, OR 4");
            uI = int.Parse(Console.ReadLine());
        }
        if (uI == 3)
        {
            Console.WriteLine("msggg");
            Console.WriteLine("SELECT 1, 2, 3, OR 4");
            uI = int.Parse(Console.ReadLine());
        }
        if (uI == 4)
        {
            Console.WriteLine("msgggg");
            Console.WriteLine("SELECT 1, 2, 3, OR 4");
            uI = int.Parse(Console.ReadLine());
        }

謝謝

您需要無限循環。 此外,我將使用更易讀的開關盒:

Console.WriteLine( "Enter 1, 2, 3, OR 4" );

while( true ) {
   uI = int.Parse( Console.ReadLine( ) );

   string message = "Error";
   switch( uI ) {
      case 1: message = "msg"; break;
      case 2: message = "msgg"; break;
      case 3: message = "msggg"; break;
      case 4: message = "msgggg"; break;
      default: break;
   }

   Console.WriteLine( message );      
   Console.WriteLine( "SELECT 1, 2, 3, OR 4" );
}

嘗試這個:

class Program
{
    static void Main(string[] args)
    {
        do
        {
            Console.WriteLine("SELECT 1, 2, 3, OR 4");
            var uI=int.Parse(Console.ReadLine());
            if (uI==1)
            {
                Console.WriteLine("msg");
            } else if (uI==2)
            {
                Console.WriteLine("msgg");
            }
            else if (uI==3)
            {
                Console.WriteLine("msggg");
            }
            else if (uI==4)
            {
                Console.WriteLine("msgggg");
            }
            else
            {
                break;
            }
        } while (true);
    }
}

因此,程序將接受輸入並對其執行操作,除非它不是1,2,3或4所在的地方,且帶有break;的循環存在break; 聲明。

        Console.WriteLine("Enter 1, 2, 3, OR 4");
        uI = int.Parse(Console.ReadLine());
        while(uI > 0) //exit loop if 0 is entered
        {
           switch(uI)
           {
              case 1: Console.WriteLine("msg"); break;
              case 2: Console.WriteLine("msgg"); break;
              case 3: Console.WriteLine("msggg"); break;
              case 4: Console.WriteLine("msgggg"); break;
              default: break; //do not write to console just loop again

           }
           Console.WriteLine("Enter 1, 2, 3, OR 4");
           uI = int.Parse(Console.ReadLine());
        }           

暫無
暫無

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

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