Возникла проблема, если я поставил int number = scanner.nextInt ();
в скобку if
и записал неправильный ввод, он работает хорошо.
Но если я не напишу его за пределами if
, при вводе неверного ввода будет выдано следующее сообщение
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at UserInput.main(UserInput.java:15)
Код:
import java.util.Scanner;
public class UserInput {
public static void main(String[] args) {
int Sum=0, counter = 0,no=1;
Scanner scanner;
scanner = new Scanner(System.in);
do {
System.out.println("Enter number #" + no + " = ");
boolean result = scanner.hasNextInt();
int number = scanner.nextInt();
if(result == true)
{
counter = counter + 1;
Sum = Sum + number;
no = no+1;
}
else
{
System.out.println("Invalid Input");
}
scanner.nextLine();
}while(counter<10);
System.out.println("Sum = " + Sum );
scanner.close();
}
}