whileループを使用して入力が整数かどうかをチェックします。最初に間違った型に遭遇しました。一度ループします。しかし、2回目から、ループ内のステートメントを2回実行します。私はすでにsc.nextLine()
を使って前の入力をクリアしています。whileループを使用して入力を確認しますが、2回目から2回実行します
Pls ignoreこれは私がこの場合に取得する必要のある日付です。日付を取得する他の方法がありますプログラムは後で必要です。 私が知りたいのは、ループを2回目から2回実行してから新しい入力を行うことです。そしてこれを避ける方法は?
import java.util.Scanner;
public class DayOfWeek {
static Scanner sc = new Scanner(System.in);
static int day, month, year;
public static void main(String[] args) {
System.out.println("");
System.out.print("Please enter the DAY in numeric form: ");
day = getInput();
System.out.print("Please enter the MONTH in numeric form: ");
month = getInput();
System.out.print("Please enter the YEAR in numeric form: ");
year = getInput();
}
public static int getInput() {
while (!sc.hasNextInt()) {
sc.nextLine();
System.out.print("Please enter integer only. Try again: ");
}
return sc.nextInt();
}
}
これは、コンソール上での結果である:
おかげ必要であれば、私は、プログラム全体をコピーすることができますが、それは少し長いようだ... それは問題でgetInput()
方法であり、
Please enter the DAY in numeric form: a
Please enter integer only. Try again: 1
Please enter the MONTH in numeric form: b
Please enter integer only. Try again: Please enter integer only. Try again: 1
Please enter the YEAR in numeric form: c
Please enter integer only. Try again: Please enter integer only. Try again: