我正在尝试使用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();
}
我做错了什么?
答案 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;
}
}