Если вы измените его, чтобы позволить пользователю ввести строку, а затем преобразовать в int, если возможно, вы можете поймать любые ошибки и выйти, если пользователь вводит символ '*':
import java.util.*;
class MainInput{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
int option;
String input;
do{
System.out.print("Enter number: ");
input = keyboard.nextLine();
try{
option = Integer.parseInt(input);
System.out.println("You entered the value: " + option);
}
catch(Exception ex) {
if (!input.equals("*")){
System.err.println("Invalid input, please enter numbers only.");
}
}
}while(!input.equals("*"));
}
}
Если вы используете значение выхода, подобное (-1), вы можете продолжать обрабатывать ввод с nextInt()
и становится еще проще. Вы можете сделать это с помощью простого Do/время:
import java.util.*;
class MainInput{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
int option = 0;
do{
System.out.print("Enter number: ");
option = keyboard.nextInt();
System.out.println("You entered the value: " + option);
}while(option != -1);
}
}
Вы не можете получить '*' в качестве входа, если используете 'nextInt()'. – pczeus
Если я изменю его, чтобы пользователь входил в -1, возможно ли это и как? – PeterJenkin
Да, еще проще. См. Ответ ниже. – pczeus