2

ユーザーから与えられた数値から特定のデータを計算するプログラムを作成しようとしています。この例では、私のプログラムは、2 で割り切れる範囲 (10,103) 内の数値の量と、ユーザーが指定した数値内で 3 で割り切れる範囲 (15,50) 内の数値の量をカウントします。この段階で、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);
        }
    }
}
4

3 に答える 3

5

for の代わりに、次のようにします。

string input = Console.ReadLine();
while(input != String.Empty)
{
     //do things
     input = Console.ReadLine();
}

任意の数の入力を許可しようとしている場合。または

if(input == "")
    break;

forループが必要な場合

于 2013-07-15T17:18:34.647 に答える
2

ループを永久に変更し、文字列が空のときにループから抜け出します。

for (;;)
{
    string input = Console.ReadLine ();
    if (String.IsNullOrEmpty(input))
    {
        break;
    }

    // rest of code inside loop goes here
}
于 2013-07-15T17:22:17.683 に答える
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);   
于 2013-07-15T17:19:43.743 に答える