回报与破发之间的区别

return语句与break语句有什么不同?
如果我必须退出if条件,我应该select哪一个returnbreak

当你想退出循环时使用break ,而返回被用来返回到它被调用的步骤或停止进一步的执行。

break用于退出(escape) for -loop, while当前正在执行的-loop, switch -statement。

return将退出您正在执行的整个方法(并可能返回一个值给调用者,可选)。

因此,要回答你的问题(正如其他人在评论和答案中指出的那样),你不能使用breakreturn来逃避一个if-else -statement本身。 他们被用来逃避其他范围。


考虑下面的例子。 while -loop中x的值将决定循环下面的代码是否被执行:

 void f() { int x = -1; while(true) { if(x == 0) break; // escape while() and jump to execute code after the the loop else if(x == 1) return; // will end the function f() immediately, // no further code inside this method will be executed. do stuff and eventually set variable x to either 0 or 1 ... } code that will be executed on break (but not with return). .... } 

您将无法仅使用returnbreakif条件退出。

在执行完成后需要从方法返回时使用return,而不希望执行方法代码的其余部分。 所以如果你使用return ,那么你不仅会从你的if条件中返回,而且还会从整个方法中返回。

考虑以下方法 –

 public void myMethod() { int i = 10; if(i==10) return; System.out.println("This will never be printed"); } 

在这里,使用return会导致在第3行之后停止执行整个方法,并且执行返回给调用者。

break用于从loopswitch语句中分离出来。 考虑这个例子 –

 int i; for(int j=0; j<10; j++) { for(i=0; i<10; i++) { if(i==0) break; // This break will cause the loop (innermost) to stop just after one iteration; } if(j==0) break; // and then this break will cause the outermost loop to stop. } switch(i) { case 0: break; // This break will cause execution to skip executing the second case statement case 1: System.out.println("This will also never be printed"); } 

这种types的break语句被称为unlabeled break语句。 还有另一种forms的rest,称为labeled break 。 考虑这个例子 –

 int[][] arrayOfInts = { { 32, 87, 3, 589 }, { 12, 1076, 2000, 8 }, { 622, 127, 77, 955 } }; int searchfor = 12; int i; int j = 0; boolean foundIt = false; search: for (i = 0; i < arrayOfInts.length; i++) { for (j = 0; j < arrayOfInts[i].length; j++) { if (arrayOfInts[i][j] == searchfor) { foundIt = true; break search; } } } 

本示例使用嵌套for循环来search二维数组中的值。 当find该值时,带标签的中断会终止外部for循环(标记为“search”)。

您可以从JavaDoc了解更多abour breakreturn语句。

没有冒犯,但其他答案都没有(到目前为止)是非常正确的。

break用于立即终止一个for循环,一个while循环或一个switch语句。 你不能从一个ifbreak

return是使用终止一个方法(并可能返回一个值)。

任何循环或块中的return当然也立即终止该循环/块。

正如其他人已经指出的那样,退货将退出该方法。 如果您需要跳过方法的某些部分,则可以使用break,即使没有循环:

 label: if (some condition) { // some stuff... if (some other condition) break label; // more stuff... 

}

请注意,这通常是不好的风格,虽然有时有用。

break: – 这些传输语句跳过剩余的迭代,跳过正确的执行stream程到当前循环之外

 class test { public static void main(String []args) { for(int i=0;i<10;i++) { if(i==5) break; } System.out.println(i); } } output will be 0 1 2 3 4 

继续: – 这些传输语句将绕过执行stream程到循环的起始点,以便通过跳过所有其余的指令继续下一次迭代。

 class test { public static void main(String []args) { for(int i=0;i<10;i++) { if(i==5) continue; } System.out.println(i); } } output will be: 0 1 2 3 4 6 7 8 9 

返回: – 在方法中的任何时候,可以使用return语句使执行分支回到方法的调用者。 因此,return语句立即终止执行它的方法。 以下示例说明了这一点。 在这里,return使执行返回到Java运行时系统,因为它是调用main()的运行时系统。

 class test { public static void main(String []args) { for(int i=0;i<10;i++) { if(i==5) return; } System.out.println(i) } } output will be : 0 1 2 3 4 

break打破当前的循环,并继续,而return它将打破当前的方法,并继续从你调用该方法的地方

你可以在循环中使用break来分解和切换语句。

您在函数中使用返回来返回一个值。 返回字段结束该函数并将控制权返回给调用该函数的位置。

在这里,您可以看到中断继续返回之间的确切区别: http : //nanajanashia.com/break-continue-return/

在这个代码中,我被迭代到3,然后循环结束;

 int function (void) { for (int i=0; i<5; i++) { if (i == 3) { break; } } } 

在这个代码中,我迭代到3,但有一个输出;

 int function (void) { for (int i=0; i<5; i++) { if (i == 3) { return i; } } } 

打破只是打破循环和返回获取控制callback用方法。

返回语句与break语句有什么不同? 返回语句退出当前的方法执行并返回值给调用方法。 中断用于退出任何循环。

如果我必须退出if条件,我应该select哪一个返回或中断?

要从方法执行中退出,请使用return。 退出任何循环,您可以使用中断或返回根据您的要求。

如果你想退出一个简单的if else语句,但仍然停留在一个特定的上下文中(而不是返回到调用上下文),你可以设置块的条件为false:

 if(condition){ //do stuff if(something happens) condition = false; } 

这将保证没有进一步的执行,我想你想要的方式..你只能在一个loopswitch case使用中断