ファイルから整数リストを読み込み、累積合計を実行するプログラムを作成しようとしています。いずれかの時点で、合計が負の数になると、プログラムは停止し、合計が負になるまでに要したステップの数をリストします。合計が正の場合、Javaの累積合計プログラムはNoSuchElementをスローします
私が問題を抱えているのは、合計が負にならないリストがある場合だけです。プログラムはNoSuchElementExceptionをスローします。ブール値を別の場所に更新するif文と、このプログラムを書くいくつかの方法を配置しようとしましたが、まだ動作させることはできません。アドバイスをいただければ幸いです。
public static boolean negativeSum(Scanner input)
{
boolean negative = true;
int sum = 0;
int counter = 0;
while(sum >= 0)
{
int inputNumber = input.nextInt();
counter++;
sum += inputNumber;
if(sum < 0)
{
System.out.println(sum + " after " + counter + " steps");
negative = true;
}
else
{
negative = false;
}
}
if(negative == false)
{
System.out.println("no negative sum");
}
return negative;
}
たとえば、「3 5 5 7 5 -70」というリストは、合計が6ステップ後に-45だったことを表示します。しかし、リスト "1 4 3 5 -6 9 8 6"は例外をスローします。
すべてのループで 'negative = true'を設定しています。最後の値だけが重要です。 –
これ以上データがなくても、スキャナを読み続けることができます。 –