1.whileループを使用して数値を合計する

キーボードから数字を読み取り (ユーザーが数字のようなものを入力している限り)、その合計を画面に表示するプログラムを作成してみましょう。このようなプログラムのコードは次のようになります (メソッド内のコードのみを示していますmain)。

コード 説明
Scanner console = new Scanner(System.in);
int sum = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   sum = sum + x;
}
System.out.println(sum); 
Scannerコンソールからデータを読み取るためのオブジェクトを作成します。
数値の合計をsum変数に格納します。
コンソールから数値が入力されている限り、

次の数値がx変数に読み込まれます。数値 (変数) の合計に
加算します。 計算された合計を画面に表示します。 xsum


while2.ループを使用して最大数を求める

2 番目のプログラムも (ユーザーが数字のようなものを入力している限り) キーボードから数字を読み取りますが、ここでは入力された数字の最大のものを表示したいと考えています。このようなプログラムのコードは次のようになります (メソッド内のコードのみを示していますmain)。

コード 説明
Scanner console = new Scanner(System.in);
int max = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   if (x > max)
     max = x;
}
System.out.println(max); 
Scannerコンソールからデータを読み取るためのオブジェクトを作成します。
変数maxには数値の最大値が格納されます。
コンソールから数値が入力されている限り、

次の数値がx変数に読み込まれます。と を
比較してください。が より大きい場合は、 最大値を更新します。 画面上に最大数を表示します。 xmaxxmax


ここで興味深い点があります。キーボードから入力された数値がすべて負の場合、プログラムは を表示します0。どちらが間違っていますか。

結果として、max 変数の初期値はできるだけ小さくする必要があります。

オプション1:

-2,000,000,000(マイナス 20 億)に設定できます。これは悪くないスタートだ。

オプション 2:

可能な限り小さいint値を割り当てます。これには特別な定数があります: Integer.MIN_VALUE;

オプション 3:

さらに良いのは、max最初に入力した数字で初期化することです。これが最良の選択肢です。ただし、これはタスクの条件でユーザーが少なくとも 1 つの数字を入力する必要がある場合にのみ機能します。