Java中的关键字break
可用于中断循环或switch语句。有没有什么可以用来打破方法?
答案 0 :(得分:223)
使用return
关键字退出方法。
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
从我上面链接的Java教程:
声明为void的任何方法都不返回值。它不需要包含return语句,但它可以这样做。在这种情况下,可以使用return语句分支出一个控制流程块并退出该方法,并且只是像这样使用:
return;
答案 1 :(得分:38)
要添加到其他答案,您还可以通过手动抛出异常退出方法:
throw new Exception();
答案 2 :(得分:17)
如何突破java ??
答:最佳方式:System.exit(0);
Java语言提供了三种跳转状态,允许您中断正常的程序流程。
其中包括中断,继续,返回,标记为中断的声明 例如
import java.util.Scanner;
class demo
{
public static void main(String args[])
{
outerLoop://Label
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<=j;k++)
{
System.out.print(k+"\t");
break outerLoop;
}
System.out.println();
}
System.out.println();
}
}
}
输出:1
现在请注意以下程序:
import java.util.Scanner;
class demo
{
public static void main(String args[])
{
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<=j;k++)
{
System.out.print(k+"\t");
break ;
}
}
System.out.println();
}
}
}
输出:
1
11
111
1111
and so on upto
1111111111
同样,您可以在上面的示例中使用continue语句将continue替换为continue。
要记住的事情:
案例标签不能包含涉及变量或方法调用的运行时表达式
outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved
答案 3 :(得分:4)
如果您在递归方法中深入递归,则抛出和捕获异常可能是一种选择。
与只返回一级的Return不同,异常会从递归方法中分解出最初调用它的代码,它可以被捕获。
答案 4 :(得分:1)
使用 return 关键字退出方法。
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
请注意: 我们可能会使用 break 语句,这些语句仅用于中断/退出循环,而不是整个程序。
退出程序:System.exit() 方法:
System.exit
有状态码,说明终止,例如:
exit(0) :表示成功终止。
exit(1) 或 exit(-1) 或任何非零值 - 表示不成功终止。
答案 5 :(得分:0)
使用return
退出方法。
public void someMethod() {
//... a bunch of code ...
if (someCondition()) {
return;
}
//... otherwise do the following...
}
这是另一个例子
int price = quantity * 5;
if (hasCream) {
price=price + 1;
}
if (haschocolat) {
price=price + 2;
}
return price;
答案 6 :(得分:0)
if (true) return;
是我使用的最佳解决方案。您可以使用 if(condition) 测试来判断真假。
为什么?
return;
:给出 Error:(105, 9) java: unreachable statementpublic class Main
{
public static void main(String[] args) {
System.out.println("Hello World 1st code ");
return;
System.out.println("Hello World 2nd code ");
}
}
由于以下错误导致编译失败。
Main.java:14: error: unreachable statement
System.out.println("Hello World 2nd code ");
^
1 error
您可以使用以下方法在线测试:https://www.onlinegdb.com/online_java_compiler
exit(0);
:如您所知,终止所有程序(java.lang.System.exit() 方法终止当前运行的 Java 虚拟机。 See ref.) ; 所以退出,不允许只破坏方法并继续调用者的执行您可以使用以下代码测试这 3 种技术:
public class Main
{
public static void do_something(int i)
{
System.out.println(" i : "+i);
// break the method
/// System.exit(0); // stop all the program
/// return; // Main.java:20: error: unreachable statemen
if(true) return;
// do some computing
int res = i*i;
System.out.println(" res : "+res);
}
public static void main(String[] args) {
for (int i = 0; i <5; i++)
{
do_something(i);
}
System.out.println("Ouiiiii , work finished ");
}
}
结果:
i : 0
i : 1
i : 2
i : 3
i : 4
Ouiiiii , work finished