我正在尝试制作一个程序,根据用户提供的数字计算某些特定数据。 在这个例子中,我的程序计算范围(10,103)中可被2整除的数字量,以及范围(15,50)中的数字量,在用户给出的数字内可被3整除。 在这个阶段,我的程序给出结果,当给出10个数字时(正如我在循环中指定的那样)。如果用户输入空行,无论是否输入5或100个数字,如何让我的程序停止读取数字并给出结果?
这是我的代码,正如它现在所寻找的那样:
using System;
namespace Program1
{
class MainClass
{
public static void Main (string[] args)
{
int input10_103_div_2 = 0;
int input15_50_div_3 = 0;
for (int i = 0; i < 10; i++)
{
string input = Console.ReadLine ();
double xinput = double.Parse (input);
if (xinput > 10 && xinput <= 103 && (xinput % 2) == 0)
{
input10_103_div_2++;
}
if (xinput > 15 && xinput < 50 && (xinput % 3) == 0)
{
input15_50_div_3++;
}
}
Console.WriteLine ("Amount of numbers in range (10,103) divisible by 2: " + input10_103_div_2);
Console.WriteLine ("Amount of numbers in range (15,50) divisible by 3: " + input15_50_div_3);
}
}
}
答案 0 :(得分:5)
而不是for,执行:
string input = Console.ReadLine();
while(input != String.Empty)
{
//do things
input = Console.ReadLine();
}
如果您尝试允许任意数量的输入。或
if(input == "")
break;
如果你想要for循环
答案 1 :(得分:2)
当字符串为空时,将循环更改为永远并退出循环:
for (;;)
{
string input = Console.ReadLine ();
if (String.IsNullOrEmpty(input))
{
break;
}
// rest of code inside loop goes here
}
答案 2 :(得分:0)
如果要重构循环,可以使用do while
循环:
string input;
do{
input = Console.ReadLine();
//stuff
} while(!string.IsNullOrEmpty(input));
如果你只是想早点休息:
string input = Console.ReadLine ();
if(string.IsNullOrEmpty(str))
break;
double xinput = double.Parse (input);