Break and Continue

break和continue语句是和循环语句紧密相关的两种语句。其中break关键字的意思是中断、打断,continue关键字的意思是继续。使用这两个关键字可以调节循环的执行。JAVA中文站社区门户LSx;n/cU
5.5.1 break语句JAVA中文站社区门户vU:e2S u8V s1f
break语句在前面的switch语句中已经介绍过,功能的话是中断switch语句的执行,在循环语句中,break语句的作用也是中断循环语句,也就是结束循环语句的执行。JAVA中文站社区门户-T%y'w/['w:KA*g
break语句可以用在三种循环语句的内部,功能完全相同。下面以while语句为例来说明break语句的基本使用及其功能。JAVA中文站社区门户o FbZ!z!E zJ;S7lL8n
示例代码:
1xDxQ;Y-v./ G3Gzint i = 0; JAVA中文站社区门户mq7V)A/pPZ,N^q1J l
while(i < 10){JAVA中文站社区门户%X&o{7C4Vo:W
i++; JAVA中文站社区门户(r;l W0C,F
if(i == 5){
b5?7Kj0o(?/break; JAVA中文站社区门户:@+? e z m_(h.D:p
}
A `lzM-EoDw9z [}
:c)F4g}?4hl#O7J:Y则该循环在变量i的值等于5时,满足条件,然后执行break语句,结束整个循环,接着执行循环后续的代码。JAVA中文站社区门户"t*nF Ath/uyh
在循环语句中,可以使用break语句中断正在执行的循环。
M1l:V%t-K1j在实际的代码中,结构往往会因为逻辑比较复杂,而存在循环语句的嵌套,如果break语句出现在循环嵌套的内部时,则只结束break语句所在的循环,对于其它的循环没有影响,示例代码如下:JAVA中文站社区门户)CD0D;iP u
for(int i = 0; i < 10; i++){
(@!f9i)t)Lh(gW |7m9Xfor(int j = 0; j < 5; j++){
/] G(yLSSystem.out.println(j); JAVA中文站社区门户0/X7Q'@R&x
if(j == 3){
GB?0V,@&_Mrbreak; JAVA中文站社区门户lo-lTv__
}JAVA中文站社区门户a"GR1n&_
}
+A9Z K's8oo}
-@| rF*|1f则该break语句因为出现在循环变量为j的循环内部,则执行到break语句时,只中断循环变量为j的循环,而对循环变量为i的循环没有影响。
1} Z6Z#f1RkPX1L在上面的示例代码中,如果需要中断外部的循环,则可以使用语法提供的标签语句来标识循环的位置,然后跳出标签对应的循环。示例代码如下:JAVA中文站社区门户6/-| F+sL yS
lable1:
%S+?y ]A;iefor(int i = 0; i < 10; i++){JAVA中文站社区门户DRvF3Vi
for(int j = 0; j < 5; j++){JAVA中文站社区门户0a4j_#l~o u"S6QS B
System.out.println(j); JAVA中文站社区门户]$Z N~ {4v.cY
if(j == 3){JAVA中文站社区门户9E-yT9GH/v{*TFa"Y
break label1; JAVA中文站社区门户2P/Pk4g~C
}
#w0g6t'p(_V}JAVA中文站社区门户$Mc!ma'F@upR E,H
}JAVA中文站社区门户2N'fvW [|8B8u#wH'^-KOL
说明:这里的label1是标签的名称,可以为Java语言中任意合法的标识符,标签语句必须和循环匹配使用,使用时书写在对应的循环语句的上面,标签语句以冒号结束。如果需要中断标签语句对应的循环时,采用break后面跟标签名的方式中断对应的循环。则在该示例代码中break语句中断的即循环变量为i的循环。
H}0E W2J5Y ?*/同样的功能也可以使用如下的逻辑实现:JAVA中文站社区门户A@:X,Lng fW_
boolean b = false;
B3zAM M!SWefor(int i = 0; i < 10; i++){JAVA中文站社区门户wpo:e-Hr
for(int j = 0; j < 5; j++){
-Z+}.?&Q-K4dg,L(P[7QSystem.out.println(j); JAVA中文站社区门户6{vU)@w*N!{
if(j == 3){
OMK$n`Y"_xb = true;
[3s J3e!i A0meGbreak; JAVA中文站社区门户!I1_)oLO/
}JAVA中文站社区门户 } t0oSBbk6z
}JAVA中文站社区门户*x#S-}9Ed5V
if(b){
3iEI*B@;}.G k eBbreak; JAVA中文站社区门户3u*R:vU5w7w
}JAVA中文站社区门户Dh_*H4G T
}JAVA中文站社区门户!l h6[*P d RhL0h
该示例代码中,通过组合使用2个break以及一个标识变量,实现跳出外部的循环结构。JAVA中文站社区门户5Jg h:f:V
5.5.2 continue语句JAVA中文站社区门户kC"qPY1{Vrq:sZ
continue语句只能使用在循环语句内部,功能是跳过该次循环,继续执行下一次循环结构。在while和do-while语句中continue语句跳转到循环条件处开始继续执行,而在for语句中continue语句跳转到迭代语句处开始继续执行。
/F&Qa*nd7[!F下面以while语句为例,来说明continue语句的功能,示例代码如下:
KXV7]`;I [int i = 0; JAVA中文站社区门户*b xr&` b6u!a%n
while(i < 4){JAVA中文站社区门户)M/n6SABb-L;S4N2Y
i++; JAVA中文站社区门户w7c} ^!? XF6@
if(i == 2){JAVA中文站社区门户z.~r0P0NxT?9E
continue; JAVA中文站社区门户h)z8^|8Qdu|
}JAVA中文站社区门户6r1N%W-h.z
System.out.println(i); JAVA中文站社区门户pLlxAc ~%dku5^
}JAVA中文站社区门户:F@ w%k{.Z*Hs$O
则该代码的执行结果是:
8c!P ]`7eW? qL1
-C%M2q+gk/]T3JAVA中文站社区门户0P?P U /Y8K+P-vTRm
4
Wp e3PE/g ]在变量i的值等于2时,执行continue语句,则后续未执行完成的循环体将被跳过,而直接进入下一次循环。
+I,HL9y-c^ g(?1paz在实际的代码中,可以使用continue语句跳过循环中的某些内容。
jNb?{.u.~5dx和前面介绍的break语句类似,continue语句使用在循环嵌套的内部时,也只是跳过所在循环的结构,如果需要跳过外部的循环,则需要使用标签语句标识对应的循环结构。示例代码如下:JAVA中文站社区门户8s1p%|%unR4R&t&_
lable1:JAVA中文站社区门户+W;|'A:?o#j@
for(int i = 0; i < 10; i++){
Lo;c1F ` Hf&dfor(int j = 0; j < 5; j++){
%Y(w0[)~*?*LSystem.out.println(j); JAVA中文站社区门户E-w f ta7Ph6@5j
if(j == 3){JAVA中文站社区门户2c@6BP i
continue label1;
@er&E1s6jw-pv}
Az/TJ]^~n2o}}JAVA中文站社区门户3Q C&q%Sm'T `1rj
}
)~H9wn(u9Iv这样在执行continue语句时,就不再是跳转到j++语句,而是直接跳转到i++语句。
M/W#Ou p,` m5.5.3 小结
lIIj&p'JN在实际的代码中,可以根据需要使用break和continue语句调整循环语句的执行,break语句的功能是结束所在的循环,而continue语句的功能是跳过当次循环未执行的代码,直接执行下一次循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值