【发布时间】:2013-01-05 16:50:28
【问题描述】:
我是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:) 的问题说“请仅输入数字”之后我希望程序再次接受用户输入,我使用了 continue come_here;
但它不起作用?
有人告诉我哪里做错了吗?以及如何解决这个问题
谢谢
【问题讨论】:
-
这不是
continue的意思。见docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html -
continue在 Java 中与 Basic 中的goto不同。 -
用
come_here:编译你的代码怎么样? -
我认为大局问题是考虑 goto,而不是结构化循环和条件。我建议阅读一些 Java 代码以了解它的工作原理。
-
@AndrewMao Java 确实支持标签和“继续标签;”是完全有效的 Java - 例如,如果它在嵌套循环中,您可以通过适当的标签继续外循环的下一次迭代。然而,Sandeep 似乎在滥用这一点。目前还不清楚到底发生了什么 - 所呈现的代码 sn-p 不应该编译(对我来说会失败,例如“不是循环标签:come_here”)
标签: java