Java 获取序列中的最大数和第二大数
请帮助我理解这段代码的最后一部分,它旨在按顺序打印最大和第二大数字。我不完全理解的是,Java 获取序列中的最大数和第二大数,java,sequence,max,Java,Sequence,Max,请帮助我理解这段代码的最后一部分,它旨在按顺序打印最大和第二大数字。我不完全理解的是,else if语句需要什么?使用代码: if (input > largest) { secondLargest = largest; largest = input; 这样做不合适吗?它检查输入是否大于最大值,将第二个最大值设置为前一个最大值。并使用输入的一个用户更新新的最大数字 那么这行代码的目的到底是什么呢?整数最大值和第二大值被设置为-1,而不仅仅是0,这与中断
else if
语句需要什么?使用代码:
if (input > largest) {
secondLargest = largest;
largest = input;
这样做不合适吗?它检查输入是否大于最大值,将第二个最大值设置为前一个最大值。并使用输入的一个用户更新新的最大数字
那么这行代码的目的到底是什么呢?整数最大值
和第二大值
被设置为-1
,而不仅仅是0
,这与中断程序的哨兵
设置为0
有关吗
} else if (input > secondLargest) {
secondLargest = input;
else if
代码处理input
介于当前值maximust
和secondmaximust
之间的情况else if
代码处理input
介于当前值maximust
和secondmaximust
之间的情况如果部分是如果输入不大于最大但大于第二大,当第二大
应该更改时,即使第二大
不会更改。如果输入不大于最大
但大于第二大
,则else if
部分为if,当第二个最大的
应该更改时,即使最大的
不会更改。请使用该序列尝试您的程序
1 2 3 5 4
如果省略,否则如果(输入>第二大){secondmaxist=input;}
则结果将是最大值=5,第二大值=3,这是不正确的。请使用该序列尝试您的程序
1 2 3 5 4
如果省略否则如果(输入>第二大){secondmaxist=input;}
则结果将是最大的=5,第二大的=3,这是不正确的。考虑输入8、10、9…因此最大的将设置为8,第二大的设置为-1,然后对于10,最大的是10,第二大的是8,但对于9,最大值将保持为10,而第二大值需要更新。此外,我认为程序希望允许0,因此它将默认值设置为-1。如果input>secondmaxist
但是!(输入>最大值)
,如果没有否则,如果,第二大值将不正确。初始化为-1的原因显然是假设序列都是正数。零表示“序列结束”;-1表示“未找到”(或类似的东西)。真的很简单!我不明白我的大脑不能自己思考这个问题。我希望它在一段时间之后学会它。考虑输入8, 10, 9…所以最大的将被设置为8,第二大的设置为-1,然后为10,最大的是10,第二个最大的是8,但是对于9,最大的将保持10,而第二个最大的需要更新。我认为程序希望允许0,因此它将默认值设置为-1。如果input>secondmaxist
但是!(输入>最大值)
,如果没有否则,如果,第二大值将不正确。初始化为-1的原因显然是假设序列都是正数。零表示“序列结束”;-1表示“未找到”(或类似的东西)。真的很简单!我不明白我的大脑不能自己思考这个问题。我希望它能在一段时间后学会。