应该运行一个打印最大和第二大的程序,但在获取第二个值时遇到问题。认为我的布尔表达式是错误的,因为我一直将 0 作为 tempSecond。你能帮我吗?
/*
* File: AddExamIntegers.java
* --------------------
* This program takes a list of integers until Sentinel,
* then prints the largest and second largest.
*/
import acm.program.*;
public class FindLargest extends ConsoleProgram {
public void run() {
println("This program takes a list of integers and then lists the largest and second largest");
println("");
println("Enter positive numbers using " + SENTINEL);
println("to signal the end of the list");
int tempHigh = 0;
int tempSecond = 0;
while (true) {
int value = readInt(": ");
if (value == SENTINEL) break;
if (tempHigh < value) {
tempHigh = value;
}
if ((tempSecond < value) && (tempSecond > tempHigh)) {
tempSecond = value;
}
}
println("The largest value is " + tempHigh);
println("The second largest value is " + tempSecond);
}
private static final int SENTINEL = 0;
}