虽然循环不能产生正确的结果

时间:2010-02-21 17:34:19

标签: c# while-loop

我正在尝试使用while循环向用户询问1到10之间的数字。虽然用户输入1到10之间的数字(包括1和10),但我想问他们另一个数字。< / p>

到目前为止我的代码是:

int i = 0;
Console.WriteLine("Enter a number.");
while (i <= 10)
{
    Console.ReadLine();

    if (i > 1 && i < 10)
    {
        Console.ReadLine();
        continue;
    }

    if (i < 1 && i > 10)
    {
        Console.WriteLine("Enter New Number...");
        break;
    }

    Console.ReadLine();
}

我做错了什么?

7 个答案:

答案 0 :(得分:15)

您正在撰写if (i < 1 && i > 10) i永远不会小于1且大于10 (提示:'和'是错误的词)

此外,您从未为i分配值 (提示:致电int.Parse

此外,您可能希望交换break(停止循环)和continue(继续循环)

此外,while循环中的条件应该是什么?

答案 1 :(得分:4)

int i = 0;
while (i < 1 || i > 10)
{
    int.TryParse(Console.ReadLine(),out i);
}

或带文字

int i = 0;
Console.WriteLine("Enter a number");
int.TryParse(Console.ReadLine(),out i);
while (i < 1 || i > 10)
{
    Console.WriteLine("Try Again");
    int.TryParse(Console.ReadLine(),out i);
}

:)

答案 2 :(得分:1)

if (i < 1 && i > 10)

if (i < 1 || i > 10)

答案 3 :(得分:1)

两件事:

  • 你永远不会向i分配除0之外的任何东西 - 所以它永远不会真正改变。您需要解析用户输入。

  • (i < 1) && (i > 10)永远不会成为现实,您可能希望使用逻辑或运算符||

答案 4 :(得分:1)

if (i > 1 && i < 10)真的是你想要的吗?它会检查一个数字是否大于1且小于10.如果数字是1还是10?

答案 5 :(得分:0)

除了条件不正确之外,还应该是:

if(i < 1 || i > 10)

你也没有指定我做任何事情。您使用Console.ReadLine(),但实际上并没有将它转储到i中。这会让你陷入无限循环。

如果您收到的值不是整数,则还会冒着类型问题的风险。您应该执行某些类型转换和数字检查以防止出现转换问题。

答案 6 :(得分:0)

未经测试的代码

int i = 0;
int count = 0;

Console.WriteLine("Enter a number.");
while (count <= 10)
{
   i = Convert.ToInt32(Console.ReadLine());

   if (i > 1 && i < 10)
   {
       count++;
       continue;

   }
   if (i < 1 || i > 10)
   {
      Console.WriteLine("Enter New Number...");
      continue;
   }
}