我正在尝试自学 Java 编程,偶然发现了斯坦福提供的 CS106A 课程。这是一个很棒的免费在线课程。我看了几个讲座视频,到目前为止我很喜欢。我现在正在尝试做作业,但我遇到了我自己无法解决的问题。
这是本次作业的第 5 号。基本上,它要求学习者创建一个控制台程序来获取用户输入的一些整数并作为响应,显示最大和最小的数字。
以下代码是我所做的,问题是当我尝试输入整数时,它会跳过偶数个输入。例如,如果我在控制台输入 3,12,6,15,9,它只会得到 3,6,9 ,而忽略 12,15。
我做错了什么?任何帮助,将不胜感激。
import java.util.*;
public class Ass2_5MaxMinNumbers {
public static void main (String args[]) {
Scanner scanner;
System.out.println ("This programme finds the largest and smallest numbers.");
System.out.println ("After finished entering, enter \"End\" (without double quotes) to show the results.");
List<Integer> list = new ArrayList<Integer>();
int max = 0, min = 0;
do {
scanner = new Scanner(System.in);
if(scanner.hasNextInt()){
int x = scanner.nextInt();
list.add(x);
System.out.println("user input: " + x);
} else if(!scanner.hasNext("End")){
System.out.println("Please enter an integer!");
}
} while (!scanner.hasNext("End"));
max = list.get(0);
min = list.get(0);
for(int x = 1; x < list.size(); x++){
if(list.get(x) > max){
max = list.get(x);
} else if(list.get(x) < min){
min = list.get(x);
}
}
System.out.println ("Smallest number: " + min);
System.out.println ("Biggest number: " + max);
}
}