本帖最后由 _J2EE_LiXiZhen 于 2017-11-16 23:17 编辑
代码概述:键盘录入一个整数,如果输入-1就跳出循环,否则继续.
问题:用nextInt()方法时,考虑到用户可能输入字符串,导致录入失败抛异常,所以用try-catch捕捉并处理, 但是,由于录入时失败,debug后发现接收控制台录入的变量被占用,且无法重写赋值或释放,本人采用的是将nextInt()方法改为nextLine(),再将字符串通过Integer.parseInt()转换的方式解决此问题.
始终感觉会有更好的方式解决,迫切希望大牛们提供多些解决方案
问题代码:
[Java] 纯文本查看 复制代码 public class Test {
public static void main(String[] args) {
int input;
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("input a number :");
try {
input = sc.nextInt();
if(input == -1)
break;
}catch (Exception e) {
System.out.println("!!!!");
}
}
}
}
由于变量空间被占用导致无法继续录入,无法跳出循环
结果展示:
C:/Users/Administrator/Desktop/捕获.JPG
解决后代码:
[Java] 纯文本查看 复制代码 public class Test {
public static void main(String[] args) {
String str;
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("input a number :");
try {
str = sc.nextLine();
int input = Integer.parseInt(str);
if(input == -1)
break;
}catch (Exception e) {
System.out.println("!!!!");
}
}
}
}
结果展示:程序正常使用
C:/Users/Administrator/Desktop/捕获2.JPG
希望大牛们提供更多的解决方法 |