このコードの最後の部分で、シーケンス内で最大の数値と 2 番目に大きい数値を出力することを目的としていることを理解してください。私が完全に理解していないのは、else if
ステートメントの必要性は何ですか? コードで:
if (input > largest) {
secondLargest = largest;
largest = input;
それは適切な仕事をするべきではありませんか?入力が最大数より大きいかどうかをチェックし、2 番目の Largest を前の最大数に設定します。入力した1人のユーザーで新しい最大数を更新します。
では、このコード行の目的は何なのでしょうか? また、整数が に設定されているだけでなく、 に設定されている何らかの理由でlargest
、secondLargest
プログラム-1
が0
にsentinel
設定されていると関係があり0
ますか?
} else if (input > secondLargest) {
secondLargest = input;
.
int largest = -1;
int secondLargest = -1;
while (true) {
int input = readInt(" ? ");
if (input == SENTINEL) break;
if (input > largest) {
secondLargest = largest;
largest = input;
} else if (input > secondLargest) {
secondLargest = input;
}