私は、ユーザーが学生のクラス番号(cn)とその学生のグレード(ngrade)を入力する簡単なプログラムを作っています。私は、cnとngradeの入力が整数かどうかをチェックする例外を追加しようとしていました。そうでない場合、ユーザは無効である旨の通知を受け、詳細を入力するように要求する。入力がすべて整数の場合はチェックループ
問題:whileループを使用して、ループ全体の入力をチェックしました。しかし、私は無限ループを得ています。
CODE:あなたが望む動作を取得するための一つのオプションはScanner#nextLine()
を使用して、文字列として各入力に読み、その後、手動で整数としてその入力を解析しようとするだろう
import java.io.*;
import java.util.*;
public class trrying {
public static void main(String[] args) {
int ngrade;
int cn;
int A = 0, B = 0, C = 0, D = 0, E = 0;
boolean test = false;
Scanner sn = new Scanner(System.in);
while (!test) {
try {
for (int i = 0; i <= 2; i++) {
System.out.println("Enter class number: ");
cn = sn.nextInt();
System.out.println("Enter numeric grade: ");
ngrade = sn.nextInt();
System.out.println("Letter Grade: ");
if (ngrade >= 90) {
A++;
System.out.println("A");
} else {
System.out.println("HELLO");
}
test = true;
}
test = false;
} catch (Exception e) {
System.out.println("ERROR! ");
// System.out.println("Enter class number: ");
}
}
}
}
関連:(http://stackoverflow.com/questions/3059333/validating-input-using-java-util-scanner)java.util.Scannerを使用して入力の検証]、[スキャナを使用する方法入力として有効なintだけを受け入れる](http://stackoverflow.com/questions/2912817/how-to-use-scanner-to-accept-only-valid-int-as-input) – Pshemo