编辑:对于那些回答过的人,我很抱歉,我应该更清楚,根据我的教授的说法,作业需要使用 for 循环。
我正在为类做一项小作业,但无法打破 for 循环并提示用户输入有效值。到目前为止我的代码设置为:
const int MINRANGE = 1;
const int MAXRANGE = 20;
int input = 0;
Console.Write("Enter the desired maximum: ");
string strInput = Console.ReadLine();
Console.WriteLine("\n\n\n");
for (int.TryParse(strInput, out input); input >= MINRANGE && input <= MAXRANGE; input--)
{
Console.WriteLine("{0,2} {1,5}", input, Math.Pow(input, 3));
}
该程序可以正确显示我需要的所有内容。当用户输入的值超出我指定的范围时,我需要给他们一条短信,然后跳出循环并返回到开始提示。我想我需要使用类似下面的 if 语句:
if (input >= MAXRANGE || input <= MINRANGE)
{
Console.WriteLine("That is not a valid value, please try again.");
}
也许休息一下;跟随它?但我不确定如何在 for 循环内使用它。我尝试将它放在外面,但这并没有让我回到用户提示符,但将它放在循环内部也没有,所以我显然做错了什么。
最佳答案
您可以使用 while 循环
int input;
while(!int.TryParse(Console.ReadLine(), out input) || input >= MAXRANGE)
{
Console.WriteLine("Not valid!");
}
请注意,这可能会让用户“卡住”,如果能提供一条有用的消息来说明为什么它无效就好了
如果出于某种奇怪的原因您必须使用for循环,您可以使用以下代码,但这是我永远不会宽恕的可怕代码
int input;
for(;;)
{
if(int.TryParse(Console.ReadLine(), out input) && input < MAXRANGE)
break;
}
关于c# - 在无效用户输入时跳出 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28669356/