虽然当条件不为真时循环不循环 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());
}
谢谢
你需要
一个不定式循环。此外,我会使用更具可读性的开关盒:
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());
}