需要两次尝试才能打破我的 while 循环
It takes two tries to break my while loop
我正在上 Udemy 课程并尝试完成一个练习,我要求用户输入一个数字,或者如果我写 "quit" 则中断循环。循环后我必须对所有数字求和。
我几乎可以正常工作了,但是我必须写 "quit" 两次 它才会中断,我不明白为什么。感谢任何帮助
int[] total = new int[10];
int number;
int counter = 0;
Console.WriteLine("Write up to 10 number or 'quit' to exit early");
while (counter < 10)
{
bool success = int.TryParse(Console.ReadLine(), out number);
if (success == true)
{
total[counter] = number;
counter++;
} else if (Console.ReadLine() == "quit")
{
break;
} else
{
Console.WriteLine("Wrong input.");
}
}
int sum = total.Sum();
Console.WriteLine("The sum is {0}", sum);
Console.ReadLine()
的每个实例将读取不同的行。您应该在循环的顶部读取一次该值。
目前您的代码是这样做的:
- 读取行(请求用户输入)。
- 能解析成int吗?号
- 读取行(请求用户再次输入)
- 是否等于"quit"?是的。
- 中断
每次循环迭代都应阅读该行:
while (counter < 10)
{
string line = Console.ReadLine();
bool success = int.TryParse(line, out number);
if (success == true)
{
total[counter] = number;
counter++;
}
else if (line == "quit")
{
break;
}
else
{
Console.WriteLine("Wrong input.");
}
}
这将请求用户输入一次 并将结果存储在 line
中。然后,您可以在迭代之前对该值执行任何需要的检查。
我正在上 Udemy 课程并尝试完成一个练习,我要求用户输入一个数字,或者如果我写 "quit" 则中断循环。循环后我必须对所有数字求和。
我几乎可以正常工作了,但是我必须写 "quit" 两次 它才会中断,我不明白为什么。感谢任何帮助
int[] total = new int[10];
int number;
int counter = 0;
Console.WriteLine("Write up to 10 number or 'quit' to exit early");
while (counter < 10)
{
bool success = int.TryParse(Console.ReadLine(), out number);
if (success == true)
{
total[counter] = number;
counter++;
} else if (Console.ReadLine() == "quit")
{
break;
} else
{
Console.WriteLine("Wrong input.");
}
}
int sum = total.Sum();
Console.WriteLine("The sum is {0}", sum);
Console.ReadLine()
的每个实例将读取不同的行。您应该在循环的顶部读取一次该值。
目前您的代码是这样做的:
- 读取行(请求用户输入)。
- 能解析成int吗?号
- 读取行(请求用户再次输入)
- 是否等于"quit"?是的。
- 中断
每次循环迭代都应阅读该行:
while (counter < 10)
{
string line = Console.ReadLine();
bool success = int.TryParse(line, out number);
if (success == true)
{
total[counter] = number;
counter++;
}
else if (line == "quit")
{
break;
}
else
{
Console.WriteLine("Wrong input.");
}
}
这将请求用户输入一次 并将结果存储在 line
中。然后,您可以在迭代之前对该值执行任何需要的检查。