このプログラムは、ユーザーが値 0 に設定された番兵を入力するまで、ユーザーが一連の数字を入力できるように設計されています。リスト。私が抱えている問題は、2 番目に大きい数値が代わりに 0 を出力すると予想されることです。
?: 演算子を使用してこの問題を解決するより洗練された方法はありますか? 出来ますか?
import acm.program.*;
public class LargestAndSecondLargest extends ConsoleProgram {
public void run() {
int a = 0;
int b = 0;
while (true) {
int value = readInt(" ?: ");
if (value == SENTINEL) break;
if (value > a) {
a = value;
}
else if (value > b) {
b = value;
}
}
println("the largest value is " + a);
println("the second largest number is" + b);
}
private static final int SENTINEL = 0;
}