虽然当条件不为真时循环不循环 C#

本文关键字:循环 条件 | 更新日期: 2023-09-27 18:35:27

我正在编写一个 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());
        }

谢谢

虽然当条件不为真时循环不循环 C#

你需要

一个不定式循环。此外,我会使用更具可读性的开关盒:

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; 语句的循环中。

        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());
        }