Java中的break Label 和continue Label
1:break
break语句提供了一种方便的跳出循环的方法,一般只退出一重循环。
boolean test=true;
int i=0;
while(test){
i++;
if(i>=10) break;
}
执行这段程序时,尽管while条件表达式始终为真,全循环只运行10次。
2:标号label
标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环语句中碰到break时,不管其它控制变量,都会终止。但是,当你嵌套在几层循环中想退出循环时又怎么办呢?break只退出一重循环,但你可以用标号label标出你想退出哪一个语句。规定标号label必需放在循环之前(意味着循环必需紧跟着标号)
例子一:
char a;
System.out.println("请输入一个字母");
outer: //System.out.println("请输入一个字母");// 如果在这个地方打印语句的话,编译时就会在下面蓝色语句的地方报The label outer is missing,因为这样会造成标号没有放在循环之前
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
a = (char) System.in.read();
if (a == 'b')
[color=blue]break outer;[/color]
if (a == 'c')
[color=blue] continue outer;[/color] }
}
在这个例子中,循环从键盘接受100个输入字符,输入“b”字符时,break outer语句会结束两重循环,注重continue outer语句,它告诉计算机退出现在的循环并继续执行outer循环。
在Java中可以使用 break/continue 语句来控制多重嵌套循环的跳转。
例子二:
label1: for (int i = 0; i < 10; i++) {
System.out.println("i = " + i);
for (int x = 0; x < 10; x++) {
System.out.println("x = " + x);
continue label1;
}
}
在这个例子中,我们使用continue label1中断当前循环,继续上层循环的执行。而如果使用break label1的话,则跳出所有label1后面的嵌套循环。类似的功能我们在C#中只能用goto进行,Java虽然保留了goto关键词,却不允许使用(goto为保留字)。需要注意的是Label和下面的循环语句间不能有其他代码。
从设计角度来说是用Label、goto都不是好主意。
分享到:
相关推荐
当有标签块,嵌套循环中有break/continue,有goto语句的时候,会提示信息“Couldn't fully decompile method ”;当有try-catch-finally语句的时候会提示信息“Couldn't resolve all exception handlers in method ”...
下面小编就为大家带来一篇关于break和continue以及label的区别和作用(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2.4.3 用break、continue和return提前退出循环 2.5 处理运行时异常 2.5.1 使用try和catch块 2.5.2 使用throws子句 2.5.3 关于流程控制语句的记忆要点 2.6 总结 2.7 练习 第3章 带有类的语言:Java面向对象程序设计 ...
4.3.4 多重for循环语句中的break与continue 52 4.4 while语句 55 4.5 do-while语句 57 4.6 巩固练习 57 第5章 类与对象 59 5.1 类的定义与对象的创建 59 5.2 引用赋值 61 5.3 成员方法 62 5.3.1 ...
首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务。 我们先来看看单独使用break的情况 for...
break . case. checkpoint close coalesce commit. compute 子句. connect to.disconnect . continue. create database . create default create existing table . create function (SQLJ) create index. create...
BREAK or CONTINUE outside of loop BREAK或CONTINUE超出循环 Cannot add or subtract relocatable symbols 不能增加或减少可重置的符号 Cannot assign to a read-only property 不能指定只读属性 Cannot BREAK, ...
4.java语言中的逻辑变量可以和整型变量相互强制转换。 5.面向对象的软件开发方法用类把数据和基于数据的操作封装在一起,并且类之间可以存在继承关系。 6.方法可以没有返回值,或有一个返回值,也可以有多个返回值。...
break语句,goto语句,continue语句,return语句 4.复合语句 把多个语句用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如 { x=y+z; a=b+c; printf(“%d%d...
C#关键字 关键字 abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach ...
break/continue 的使用 二维数组的初始化 String 相关(不可变、安全、常量池...) StringBuilder/StringBuffer 正则表达式 ArrayList 和 LinkedList 对比:数组实现,按下标查找效率高,删除添加效率低; 链表实现,...
它是一种“无编程”脚本工具,支持多种命令和构造:•识别应用程序中的用户界面元素并与之交互•有条件(分支)逻辑(If,ElseIF,Else,EndIf)•循环和跳转流控制(同时,For,ForEach,Continue,Break,GoTo,...
15.2.3 WHILE、BREAK和CONTINUE语句 15.2.4 DECLARE语句 15.2.5 GOTO label语句 15.2.6 RETURN语句 15.2.7 WAITFOR语句 15.2.8 PRINT语句 15.2.9 注释 15.3 SQL Server中的存储过程和函数 15.3.1 ...
import java.io.IOException; import java.util.Hashtable; import java.util.Vector; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; public class DCSnake extends i { ...
• sample22.htm 在嵌套的循环语句中使用break语句 • sample23.htm label语句与break语句相结合 • sample24.htm continue语句 • sample25.htm label语句与continue语句相结合 •...
break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 ...
break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 ...
15.2.3 while、break和continue语句 304 15.2.4 declare语句 306 15.2.5 goto label语句 306 15.2.6 return语句 307 15.2.7 waitfor语句 307 15.2.8 print语句 308 15.2.9 注释 308 15.3 sql server中的存储...
break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 ...
3.3.2 使用continue语句的实现程序跳转 60 3.3.3 使用goto语句实现程序跳转 60 3.3.4 使用return语句实现程序跳转 62 3.4 异常处理语句 63 3.4.1 throw语句 63 3.4.2 try-catch语句 64 3.4.3 try-catch...