[英]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.