import java.util.Scanner;
public class sumAverageUsingArray {
public static void main(String[] args) {
/**
* LargestValue
*/
final int LENGTH = 5;
int[] values = new int[LENGTH];
int currentSize = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter values and Q to Quit");
while (sc.hasNextInt() && currentSize < values.length) {
values[currentSize] = sc.nextInt();
currentSize++;
}
sc.close();
int largest = values[0];
for (int i = 1; i < currentSize; i++) {
if (values[i] > largest) {
largest = values[i];
}
}
System.out.printf("Largest is : %d", largest);
}
预期: 5,4,3,2,1
最大是:5
实际: 6,5,4,3,2,1
最大是:6
Scanner类需要额外的输入,但对程序的行为没有影响,如何解决?
答案 0 :(得分:3)
替换
while (sc.hasNextInt() && currentSize < values.length) {
作者
while (currentSize < values.length && sc.hasNextInt()) {
hasNextInt()
被强制阻塞,直到您输入某些内容才能知道...是否存在下一个int。如果输入int,则可以返回true。如果输入其他内容,则可能返回false。如果您没有输入enything,它需要等到您输入一些东西才能知道返回什么。