前言:
区别于从上到下一条一条执行的顺序语句,Java语言提供了break,continue,break三种跳转语句,可以无条件改变程序的执行顺序。下面详细介绍break种跳转语句。
1.break语句
1.1无标签break语句
我们在C语言或者C++语言中在执行多条件选择时会使用到switch语句,我们也了解到switch语句也叫开关语句,当switch的表达式匹配到一个case之后,如果在后方没有break语句,那么将会连同后续的case语句往下执行,这是我第一次使用break的地方,不知道大家是否和我一样,所以在这个时候的break,没有带有任何标签就叫无标签的break语句,将会区分于下文我们介绍的有标签的break语句,当break语句应用于switch、for、while、及do语句中,可以立即终止执行包含break语句所在的一个程序块。
下面展示一个程序案例,用以说明无标签break语句是如何在while循环中改变循环的。
public class noLabelBreak // 公有访问权限修饰符+关键字+类名
{ // 包在一对大括号之间的叫做类体
public static void main(String[]args)
// 访问权限修饰符+静态+main返回值为空+方法名(参数列表)
{ // 在方法中的叫作方法体
boolean test=true; //定义一个基本布尔类型变量test并赋值为true
// 在这里一定要注意看清楚此种类型变量的赋值方法,注意没有""或者''
// 这个是作为后续while循环的表达式
int i=1; // 猜猜干什么的
while(test)
{
System.out.println("i="+i);
if(i==10)
break;
i++;
}
System.out.println("i为10时结束循环!");
}
}
/** 运行结果如下:
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
i为10时结束循环!
在上述程序中,虽然while的循环判断条件一直为true,但是当i等于10时,break语句结束整个循环,接着执行循环后续的代码。因此,在循环语句中,可以使用break语句中断正在执行的操作。
在实际代码中,结构往往会因为逻辑比较复杂,而存在循环语句的嵌套,如果break语句出现在循环嵌套的内部时,则只结束break语句所在的循环,对于其他的循环没有影响。
1.2带标签break语句
break语句只终止执行包含它的最小语句块,如果希望终止更外层的语句块,可以用带标签的break语句。格式如下:
break 标签;
当这种形式的break执行时,控制被传递出制定的代码块。被加标签的代码块必须包含break语句,但是它不需要是直接的包围break块。因此可以使用一个加标签的break语句退出一系列的嵌套块。
要为一个代码块加标签,在其开头加一个标签即可。标签可以是任何合法有效的Java标识符,标签后跟一个冒号。给一个块加上标签后,就可以使用这个标签作为break语句的对象。
实例如下:
public class LabelBreakDemo
{
public static void main(Sting[]args)
{
loop:
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
if(j*i==16)
{
break loop;
}
System.out.print(j+" * "+i+"="+j*i+" ");
}
System.out.print("\r\n");
}
}
}