我是java新手。
int nop=o;
BufferedReader scan = new BufferedReader( new InputStreamReader(System.in));
come_here:
System.out.println("Enter length");
try{
int n=Integer.parseInt(scan.readLine());
nop=n;
}catch(Exception sandy){
System.out.println("Please Enter Numericals only");
continue come_here;
}如果用户输入任何字符串而不是数字异常发生,并打印“请输入数字只”和编译器执行下一条语句,这里是丢失用户输入克服我已经使用标签(come here:),如果一个异常发生它说“请输入数字只”之后,我想程序再次采取用户输入,我使用了继续come_here;但它不工作?
有人告诉我哪里做错了吗?以及如何解决这个问题
谢谢
发布于 2013-01-06 00:58:14
这不是有效的Java。我将改写如下代码:
int nop = 0;
BufferedReader scan = new BufferedReader(new InputStreamReader(System.in));
for (;;) {
System.out.println("Enter length");
try {
int n = Integer.parseInt(scan.readLine());
nop = n;
break;
} catch (Exception sandy) {
System.out.println("Please Enter Numericals only");
}
}发布于 2013-01-06 00:53:51
在这里引用Continue Usage,用法与您所学的不同
以下代码可用于读取整数值
int nop=o;
BufferedReader scan = new BufferedReader( new InputStreamReader(System.in));
for(;;) {
System.out.println("Enter length");
try{
int n=Integer.parseInt(scan.readLine());
nop=n;
break;
}catch(Exception sandy){
System.out.println("Please Enter Numericals only");
}
}发布于 2013-01-06 00:58:12
我并不是说这是解决这个问题的最佳方法,但也许您正在寻找类似这样的东西。我把你的goto-statement换成了while(true)循环。一旦成功解析了整数,while循环就会退出。
int nop=0;
BufferedReader scan = new BufferedReader( new InputStreamReader(System.in));
while (true) {
System.out.println("Enter length");
try {
int n=Integer.parseInt(scan.readLine());
nop=n;
break;
} catch(Exception sandy){
System.out.println("Please Enter Numericals only");
}
}https://stackoverflow.com/questions/14174025
复制相似问题