Проверка на ввод только чисел
Написал программу, которая принимает два числа, а потом оперирует. Но если я ввожу букву, то выдаёт ошибку, как сделать так, чтобы если вводил не цифры, то заново выводило сообщение на ввод числа, а не выдавало ошибку? Спасибо.
import java.util.Scanner;
public class MyProject4 {
public static void main(String args[]) {
float i;
float k;
float s;
String str = null;
while (true) {
Scanner scn = new Scanner(System.in);
System.out.println("Введите первое число");
i = scn.nextFloat();
System.out.println("Введите второе число");
k = scn.nextFloat();
System.out
.println("Введите: (+ сложить) (- вычесть) (* умножить) (/ делить)");
str = scn.next();
if (str.equals("+")) {
s = i + k;
if (s - (int) s == 0)
System.out.println((int) s);
else
System.out.println(s);
}
if (str.equals("-")) {
s = i - k;
if (s - (int) s == 0)
System.out.println((int) s);
else
System.out.println(s);
}
if (str.equals("*")) {
s = i * k;
if (s - (int) s == 0)
System.out.println((int) s);
else
System.out.println(s);
}
if (str.equals("/")) {
s = i / k;
if (s - (int) s == 0) {
System.out.println((int) s);
} else {
System.out.println(s);
}
}
System.out.println("Введите q для выхода или любую другую для продолжение");
str = scn.next();
if (str.equals("q")) {
System.out.println("Выход");
return;
}
}
}
}
Источник: Stack Overflow на русском