数年後の人の投資を計算するプログラムを書いています。ユーザーに、名前、投資額、利率、年数を入力するように求めます。if...else ステートメントを使用して入力の検証を行うことになっています。チェックの 1 つは、ユーザーが正しいデータ型を入力したかどうかを確認することです。これは入門 Java クラス用です。1 週間前にメソッドの章を終えたので、これは初心者向けのものです。データ型チェックを行う方法を理解しているようです。int 型に対して hasNextInt を試しましたが、まったく学習していない例外が発生します。Pattern クラスと Match クラスに関する情報をオンラインで見つけましたが、まだ見たことのないものがたくさんあります。これは、正しい入力を取得するために私が書いたメソッドの 1 つです。
//Define method for input validation, integer type
public static int getValidInt(String messagePrompt, String messagePrompt2, String messagePrompt3){
Scanner input = new Scanner(System.in);//Create scanner
int returnValue;
int j = 0;
do {//Start validation loop
System.out.printf(messagePrompt); //Print input request
returnValue = input.nextInt();
if (returnValue <= 0) { //Check if user entered a positive number
System.out.println(messagePrompt2);//Print error message
}
else if (!input.hasNextInt()) {
System.out.println(messagePrompt3);//Print error message
}
else {
j++;
}
} while (j == 0);//End validation loop
return returnValue;
}
チェックの順序が正しいかどうかわかりません。どんな助けでも大歓迎です。ありがとうございました。