跳转语句
跳转语句用于实现程序执行流程有目的的转移。
在J a v a语言中, 用于跳转的语句有:
b r e a k语句、 c o n t i n u e语句和r e t ur n语句。
一、 b r e a k语句:
我们已经用过使用b r e a k语句可以从sw i t c h语句中跳出, 继续执行s w i tc h语
句后面的语句。除此之外, b r e a k语句还可以用来从循环体内跳出,提前结束循环。
当b r e a k语句用在循环语句中时,它有两种使用形式: 不带标号的b r e a k语句和带标号的
b r e a k语句。
1.不带标号的b r e a k语句
其形式如下:
b r e a k;
它的作用是:中断当前循环体的执行, 即不再继续执行剩余的循环,而是开始执行该循环体
后面的语句。对于多重循环, 不带标号的b r ea k语句只能从其所在的那层循环中跳出, 而不是
跳出所有的循环。
例如:
Public Class BreakDemo { public static void main( S t r i n g[ ]a r g s) {
Public Class BreakDemo { public static void main( S t r i n g[ ]a r g s) { i n ti, j; f o r( i =1 0 0; i <=1 5 0; i ++) { f o r( j =2; j <=i /2; j ++) { i f( i %j ==0) b r e a k; / /如果i %j ==0, 跳出第二重循环, 进入第一重循环。 } i f( j >i /2) { S y s t e m . o u t . p r i n t l n( i +"is aprime number ") ; } } } }
2.带标号的b r e a k语句
其形式如下:
b r e a k 标号名;
带标号的b r e a k语句与标号搭配使用可以中断多重循环, 使程序流程跳转到标号标示的
循环体之外。
例如:
public class BreakWit hLabelDemo
{
public static void main( String[ ]args)
{
int i,j;
outer;
f o r( i =1 0 0; i <=1 5 0; i ++)
{
f o r( j =2; j <=i /2; j ++)
{
i f( i %j ==0)
b r e a k;
}
i f( j >i /2)
{
S y s t e m . o u t . p r i n t l n( i +"is a prime number") ;
break outer; / /转跳到标号o u t e r处
}
}
}
}
注意: 执行带标号的b r ea k语句后, 虽然标号在循环语句前面,但不再执行循环语句, 而是
执行循环体后面的语句。
二 、continue语句
continue语句只能用在循环语句的循环体内, 它也有两种使用形式: 不带标号和带标号
的continue语句。
1.不带标号的continue语句
其形式如下:
continue
它的作用是:中断本次循环, 直接回到当前循环的起始处,开始下一轮循环。
例如:
public class ContinueDemo
{
public static void main( String[ ]args)
{
int sum =0;
for( int i=1; i<=100; i++)
{
if( i%2==0)
continue; / /不带标号的c o n t i n u e语句
sum+=i;
}
System.out.println( "sumofodd number 1to100="+s u m) ;
}
}
2.带标号的continue语句
它的使用形式如下:
continue 标号名;
带标号的continue语句与标号搭配使用可以使程序流程跳转到标号标示处, 直接开始该
标号之后循环的下一轮。
例如:
public class ContinuewithLabelDemo
{
public static void main ( String[ ]args)
{
int i,j;
outer;
for ( i =100; i <=150; i++)
{
f o r( j =2; j <=i /2; j ++)
{
i f( i %j ==0)
continue outer;
}
i f( j >i /2)
{
S y s t e m . o u t . p r i n t l n( i +"i sap r i m en u m b e r") ;
}
}
}
}
break与continue语句的异同
break语句在switch语句和循环语句中使用, 而continue语句只能在循环中使用。
在循环语句中, 不带标号的b r e a k语句结束它所在循环中的整个循环, 而不带标号的continue语句是结束本次循环, 开始新的循环。
带标号的break语句转跳到标号后, 不再执行标号后的循环语句, 而带标号的continue语句转跳到标号后, 继续执行标号后的循环语句。
return语句
return语句用在方法中, 其作用是使程序流程从当前执行的方法返回。return语句的一般使用方式如下:
return表达式;
该语句的作用是首先计算出表达式的值, 并返回这个值, 然后结束该方法的执行。
如果某个方法没有返回值, return语句就可有可无。如果没有return语句, 该方法在被
调用时, 执行方法的最后一条语句后,就自动结束方法的执行。如果有return语句, 这时, return语句应表示为:
return;
一个方法中允许出现多个return语句, 分别用于不同条件下的方法返回。