如果没有输入,如何让程序停止读取用户输入?

时间:2013-07-15 17:16:40

标签: c# parsing

我正在尝试制作一个程序,根据用户提供的数字计算某些特定数据。 在这个例子中,我的程序计算范围(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);
        }
    }
}

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);