帮助我理解这段代码的最后一部分,它旨在打印序列中的最大和第二大数字。我不完全理解的是,else if
声明的必要性是什么?使用代码:
if (input > largest) {
secondLargest = largest;
largest = input;
那不应该做正确的工作吗?它检查输入是否大于最大数字,将第二大数字设置为前一个最大数字。并用输入的一个用户更新新的最大数字。
那么这行代码的目的到底是什么呢?以及整数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;
}