我正在编写一个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());
}
谢谢
答案 0 :(得分:0)
您需要一个不定式循环。此外,我使用更易读的开关盒:
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" );
}
答案 1 :(得分:0)
试试这个:
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;
语句的循环。
答案 2 :(得分:0)
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());
}