我编写了一个简单的程序来循环并找到用户输入的一组数字的最大值:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int currMax, currEl;
currMax = sc.nextInt();
while (sc.hasNext()) {
currEl = sc.nextInt();
currMax = (currEl > currMax ? currEl : currMax);
}
sc.close();
System.out.println(currMax);
} // end function main
}
我在Windows上使用Eclipse。
当我第一次运行它时运行它,并将Ctrl-Z视为EOF并退出循环。但第二次,它似乎没有阅读EOF。我无法解释这个,或者解决这个问题..你认为发生了什么,我该如何解决?
后续行动:问题发生在Eclipse上,而不是在我使用cmd行时。我怀疑这是发生了什么 - 如果我使用cmd行,我可以执行Ctrl-Z然后按Enter键,但是如果我使用Eclipse,我相信一旦按下Ctrl-Z,s.hasNext()会计算到false,上述程序终止。