複数の数の入力から、最大、2つ目に大きい数を特定するコードを作っています。
2つ以上の異なる整数値の入力では機能するものができたのですが、初期設定時に、最大値及び二番目に大きい値をInteger.MIN_VALUEで置いているため、入力する整数が2つ未満、あるいは異なる整数が2つ未満になった場合、二番目に小さい値が最小値の-2147483648になってしまいます。
Scannerを使って、scanner.hasnextInt()でのwhile loopを用いたいのですが、入力された整数が2つ未満あるいは、異なる整数が2つ未満の時の対処の仕方を教えていただきたいです。
入力された数が1つしかなかった場合、アウトプットとしては”2つ目に大きい整数”の表示をなくすためにはどうすれば良いのでしょうか?
エラーメッセージ
整数値の入力.
44 44
^D
入力された整数値のうち最大値は is 44
入力された整数値のうち2番目に大きいのは -2147483648
^^この場合、2つ目に大きい値は存在しないため、この”2番目に大きい整数値は”の表示ごと無くしたいです、
該当のソースコード
public static void main(String args[]){
Scanner myScanner = new Scanner(System.in);
// 最大値、2つ目の値の初期設定
int number = 0, largest1 = Integer.MIN_VALUE, largest2 = Integer.MIN_VALUE;
System.out.println("整数値の入力 ");
//入力された数の値の比較 while(myScanner.hasNextInt()) { number = myScanner.nextInt(); if(numbers > largest1) { if(largest1 > largest2) { largest2 = largest1; } largest1 = number; } else { if(number > largest2) { if(number != largest1) largest2 = number; } } } myScanner.close(); System.out.println("\n 入力された整数値のうち最大値は " + largest1); System.out.println("\n 入力された整数値のうち2番目に大きいのは " + largest2); } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。