循环语句中的break、continue、return用法

       使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。 在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。 
       而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句 

return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。

      尽管对return 语句详细讨论在第 7 章开始,这里对其作简要地介绍。在一个方法任何时间,return 语句可被用来使正在执行分支程序返回到调用它方法。

      下面例子说明这一点。下例中,由于是Java 运行系统调用main() ,因此,return语句使程序执行返回到Java 运行系统。

 // Demonstrate return. class Return { public static void main(String args[]) { boolean t = true; System.out.println(“Before the return.”); if(t) return; // return to caller System.out.println(“This won’t execute.”); } } 该程序结果如下: Before the return. 正如你看到一样,最后println( ) 语句没有被执行。一旦return语句被执行,程序控制传递到它调用者。 最后一点:在上面程序中,if(t)语句是必要。没有它,Java 编译器将标记“执行不到代码”(unreachable code )错误,因为编译器知道最后println ()语句将永远不会被执行。为阻止这个错误,为这个例子能够执行,在这里使用if语句来“蒙骗”编译器。


如何遇到2个for,break只退出最近的for对吗


不是绝对,如果没有标号的话,break是结束它所在的循环。如果有标号,例如:

outer:

for(){ 

inner: 

for(){

break outer;

}}

这样break可以结束两个循环(标号只在嵌套时用)


matlab中,break 命令可以使包含 break 的最内层的 for 或 while 语句强制终止,立即跳出该结构,执行end 后面的命令;break 命令一般也和 If 结构结合使用。


2个for循环嵌套,内循环有if end 选择结构, if内有break,则break跳出的是内层for循环进入外层for中。

if通常是不需要“跳出”的。

假设我们有一个能跳出if的语句叫breakif
那么如果你的程序像下面这种形式
if  a
  statement 1;
  breakif;
  statement 2;  
else b
end
那么statement2在这里就是没有意义的,因为永远执行不到。

而你如果删掉statement2,写成
if  a
  statement 1;
  breakif;  
else b
end
那么breakif就是多余的,因为执行完statement1时,本来就已经退出了if。

所以,如果你发现自己需要使用这个breakif语句,那么首先应该考虑一下自己的程序的结构是不是可以改进一下。

另外,break的作用是结束(或称为“跳出”)“当前层循环”,使得下一条被执行的语句是该循环之后的第一条语句。8楼上提到的“大循环”这个词估计指的是相同的意思,但是在多层循环的情况,这个词可能会让人误解为“最外层循环”(最大的循环)。

你可能感兴趣的:(编程)