刚刚做题一直卡在如果输入错误,再重新输入会产生错误的返回值
之前的代码片段
String text = input.nextLine();
int num = -1;
try{
num = Integer.parseInt(text);
return num;
}catch (NumberFormatException e){
menu();
return num;
}
=============================
修改后的
public static int menu(){
System.out.println("请根据提示,输入数字");
System.out.println("1.快递员");
System.out.println("2.用户");
System.out.println("0.退出");
Scanner input = new Scanner(System.in);
String text = input.nextLine();//这一步是接收外界传入的一行字符,不管输入什么都可以进行接受
int num = -1;//初始化num
try{
num = Integer.parseInt(text);//将外界接收的字符转换为int类型
}catch (NumberFormatException e){//对转换的数字进行判断如果是数字则跳过,如果不是则执行
return menu();//这一步就是关键,如果这一步不是return 方法,而是象上面那样就会导致出错
}
return num;
}