Java转移语句

       Java语言没有提供goto语句来控制程序的跳转,这样可以提高程序的结构性,但是却降低了程序的灵活性,为了弥补这种不足,Java提供了一些转移语句来控制分支和循环架构,从而更加方便地控制程序执行的方向。Java有三个转移语句:break语句、continue语句和return语句。

    1. break语句

      break语句的语法格式如下:

                                break [标签];

     break语句用于终止switch分支结构或循环结构。在switch语句中,break语句用于终止case语句,跳出switch分支结构(switch语句)。在for、while、do-while循环结构中,break语句用于终止循环结构,跳出循环结构,如图1所示。如果break语句出现在嵌套循环中的内循环,则只会退出当前一层循环。break语句可以与标签配合使用,从内层循环中跳出标签所标记的语句块。

图1. 具有break语句的for循环结构

【例1】判断一个整数是否为素数,只能被1和自身整数的自然数称为素数(0和1都不是素数)。

程序代码如下:

public class BreakDemo1 {
	//判断n是否为素数
	public static boolean isPrime(int n) {
		boolean r=true;//初始默认为素数
		for(int i=2;i<n;i++) {
			if(n%i==0) {//如果n除以i的余数为0
				r=false;//n不是素数
				break;  //跳出for循环
			}	
		}
		if(n<=1) r=false;
		return r;
	}
	public static void main(String[] args) {
		System.out.println("13是否为素数:"+isPrime(13));
		System.out.println("15是否为素数:"+isPrime(15));
		System.out.println("1是否为素数:"+isPrime(1));
	}
}

【例2】编写一个程序,输出如下所示的三角形图案,该程序利用break语句跳出两层for循环中的内循环结构。

*

**

***

****

*****

******

*******

********

*********

**********

程序代码如下:

public class BreakDemo2 {
	public static void draw(int n) {
		for(int i=1;i<=n;i++) {//控制行
			for(int j=1;j<=n;j++) {//控制列
				if(j>i) {//如果列号大于行号
					System.out.println();//换行
					break;//跳出内层循环
				}
				//如果行号大于等于列号,输出“*”号
				System.out.print("*");
			}
		}
	}
	public static void main(String[] args) {
		draw(10);
	}
}

     2. continue语句

        continue语句语法格式如下:

                                continue [标签];

      continue语句的功能与break语句有些相似,区别在于continue语句只是忽略本次循环剩下的语句,接着进入下一次循环,并不会终止循环,而break则完全终止循环。具有Continue语句的for循环结构如图2所示。continue也可以与标签一起使用,它表示立即结束标签标记的那重循环的当次循环,开始执行下一次循环。

图2. 具有continue语句的for循环结构

【例3】输出从1到正整数n之间的所有奇数。

程序代码如下:

public class ContinueDemo {
	//输出1到n的所有奇数
	public static void oddNumber(int n) {
		for(int i=1;i<=n;i++) {
			if(i%2==0) {//如果i为偶数
				continue;//跳出本次循环
			}
			System.out.print(i+" ");
		}
	}
	public static void main(String[] args) {
		System.out.print("1到20之间的所有奇数:");
		oddNumber(20);
	}
}

【例4】下面是一个利用continue加标签跳出标签所标记的那重循环的当次循环的程序,该程序也可以例2所示的三角形图案。

程序代码如下:

public class DemoContinue {
	public static void draw(int n) {
		label:for(int i=0;i<n;i++) {//控制行
			for(int j=0;j<n;j++) {//控制列
				if(j>i) {
					System.out.println();//换行
					continue label;//跳出外层循环(label标记))的档次寻循环
				}
				System.out.print("*");
			}
		}
	}	
public static void main(String[] args) {
		draw(10);
	}
}

    3. return语句

      return语句的语法格式为:

                                return [表达式];

      return语句用在方法中,以便结束一个方法。当含有return语句的方法被调用时,执行return语句将从当前方法中退出,返回到调用该方法的语句处,如果return语句后面有表达式时,则返回表达式的取值,否则,不返回任何值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值