c# - 在无效用户输入时跳出 for 循环

标签 c# loops

编辑:对于那些回答过的人,我很抱歉,我应该更清楚,根据我的教授的说法,作业需要使用 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/

相关文章:

java - 从循环创建表(java)

C#:foreach 主值调用了多少次?

c# - 从 XmlReader 的字符串中删除\"转义字符

javascript - 从数组中生成选择选项并通过与另一个数组进行比较来选择多个元素(jQuery)

python - 将简单的 Web 服务器集成到 Python 中的自定义主循环中?

c# - C# 中 FOR 循环中的多个相关异步 REST API 调用(链接)

php - 使用 curl_multi_exec 执行 while 循环导致 100% CPU 使用率

c# - IEnumerable<T> 和 Take(x) 问题?

c# - 如何创建具有集合的控件

c# - 如何使用 yield 在并行 block 或任务中返回 Item 的集合