私は自分でJavaプログラミングを学ぼうとしていますが、スタンフォード大学が提供するCS106Aコースに出くわしました。それは素晴らしい無料のオンラインコースです。講義ビデオを何本か見て、今まで楽しんでいました。私は今、割り当てをしようとしていますが、自分では解決できないこの問題があります。
この課題の5番です。基本的に、学習者はコンソールプログラムを作成して、ユーザーが入力した整数を取得し、それに応じて最大数と最小数を表示する必要があります。
次のコードは私が行ったことであり、問題は整数を入力しようとすると、偶数の入力をスキップすることです。たとえば、コンソールに3,12,6,15,9と入力すると、12,15を無視して、3,6,9しか取得されません。
私は何を間違えましたか?どんな助けでもいただければ幸いです。
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);
}
}