要求:输入一个整数
一开始写的错误代码:
public static void main(String[] args) {
int n = 0;
boolean keeprunning = true;
System.out.println("请输入一个整数:");
while(keeprunning) {
Scanner input = new Scanner(System.in);
//判断输入的是不是一个整数
if(!input.hasNextInt || input == null) {
System.out.println("您输入的不是一个整数,请重新输入:");
}
//判断输入的数字是否大于0
else if(input.nextInt() < 0) {
System.out.println("请重新输入一个大于0的整数:");
}
else {
n = input.nextInt();
keeprunning = false;
}
}
System.out.println(n);
}
这个代码的错误就是没有把输入的值存起来,然后逻辑比较乱
贴重新写的代码,用了一个try...catch来捕获输入不为整数的错误,然后判断是否大于0,运行成功
public static void main(String[] args) {
boolean keeprunning = true;
int n = 0;
System.out.println("请输入一个整数:");
while(keeprunning) {
try{
Scanner input = new Scanner(System.in);
n = input.nextInt();
if(n < 0) {
System.out.println("输入的数字小于0,请重新输入:");
}else {
keeprunning = false;
}
}catch(Exception e) {
System.out.println("您输入的数字有误,请重新输入:");
}
}
System.out.println(n);
}