【发布时间】:2019-12-01 08:53:16
【问题描述】:
我有一个作业,我必须编写一个程序,在循环中询问数字十次,最后给出这十个数字的总和。 但也必须可以在按下回车时停止循环并给出数字的总和。
我在 while 循环中尝试过类似的方法,但也没有用:
if( Console.KeyAvailable && Console.ReadKey( true ).Key == ConsoleKey.Enter ) 中断;
谁能提出解决方案?
提前致谢!
{
int i = 0;
int number;
string number_s;
int sum = 0;
while (i < 10)
{
{
i++;
Console.WriteLine("Enter number:");
number_s = Console.ReadLine();
Int32.TryParse(number_s, out number);
sum += number;
}
}
Console.Write("Sum is: {0}", sum);
}
【问题讨论】:
-
当你按下 Enter 你的 number_s 将被设置为一个空字符串 (string.Empty) 现在你只需要检查它并使用 break i> 关键字退出循环
-
if(string.IsNullOrWhiteSpace(number_s)) break; -
只是为了解释您的尝试失败的原因:
ReadLine被阻止。它会等到缓冲区中有东西和 Enter 。KeyAvailable和ReadKey是非阻塞的。因此,他们将遇到空缓冲区:在您输入数字之前或在ReadLine清空缓冲区之后。 -
当用户输入“Lilian”或“Banana”而不是数字时,你想做什么?
标签: c# while-loop