Я делаю простую программу, в которой пользователь вводит номер класса ученика (cn) и класс этого ученика (ngrade). Я пытался добавить исключение, проверяющее, являются ли входы cn и ngrade целыми числами. Если нет, пользователь будет проинформирован о том, что он недействителен и просит повторно ввести данные.Проверьте цикл, если ввод все целое
проблема: я использовал цикл while для проверки входов по всему циклу. но я получаю бесконечный цикл.
КОД:
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: ");
}
}
}
}
Связанный: [Проверка ввода с использованием java.util.Scanner] (http://stackoverflow.com/questions/3059333/validating-input-using-java-util-scanner), [Как использовать сканер для accept only valid int as input] (http://stackoverflow.com/questions/2912817/how-to-use-scanner-to-accept-only-valid-int-as-input) – Pshemo