Java--流程控制(循环语句、循环控制语句)

1、循环语句

        循环语句就是在满足一定条件的情况下反复执行某一个操作。 在Java中提供了3种常用的的循环语句,分别是while循环语句、do...while循环语句和for循环语句。

(1)while 循环语句

        while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。语法如下:

while(条件表达式)
{
    执行语句
}

        当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。while 循环语句的执行过程如图所示。

【实例】在项目中创建Test01类,在主方法中通过while循环将整数1~10相加,并将结果输出。

public class Test01 {
	public static void main(String args[]) {
		int x=1;
		int sum=0;
		while(x<=10) {
			sum=sum+x;
			x++;
		}
		System.out.println("sum="+sum);
	}
}

运行结果如图所示:

(2)do...while循环语句 

        do...while循环语句与while循环语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do...while循环语句中“{ }”中的程序段至少要被执行一次。

do
{
    执行语句
}
while(条件表达式);

        do...while语句与while语句的一个明显区别是,do...while语句在结尾处多了一个分号(;),其执行过程如图:

 (3)for循环语句

        for循环是Java程序设计中最有用的循环语句之一,一个for循环可以用来重复执行某条语句,直到某个条件得到满足。

①for语句

语法如下:

for(表达式1;表达式2;表达式3)
{
    语句序列
}

表达式1:初始化表达式,负责完成变量的初始化。

表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件。

表达式3:循环后操作表达式,负责修整变量,改变循环条件。

        在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,则进入循环体;在执行完循环体后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从计算表达式2开始,若表达式2返回 true,则继续循环,否则跳出整个 for 语句。

【实例】在项目中创建Test02类,在主方法中使用for循环来计算1~100之间所有偶数之和。

public class Test02 {
	public static void main(String args[]) {
		int sum=0;
		for(int i=0;i<=100;i+=2) {
			sum=sum+i;
		}
		System.out.println("1~100之间的所有偶数之和为:"+sum);
	}
}

运行结果如图所示:

        在编程时,有时会使用for循环的特殊语法格式来实现无限循环。对于这种无限循环,可以通过break语句跳出循环。

②foreach语句

        foreach 语句是 for 语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach 语句。foreach语句在遍历数组等方面为程序员提供了很大的方便。

语法如下:

for(元素变量x;遍历对象obj){//不必对元素变量x进行初始化。
    引用了x的java语句;
}

【实例】在项目中创建Test03类,在主方法中定义一维数组,并用foreach语句遍历该数组。

public class Test03 {
	public static void main(String args[]) {
		int arr[]= {4,6,2};
		System.out.println("一维数组中的元素分别为:");
		for(int x:arr) {
			//foreach语句,int x引用的变量,arr指定要循环遍历的数组,最后将x输出
			System.out.println(x);
		}
	}
}

运行结果如图所示:

2、循环控制语句 

(1)break语句

        使用break 语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体,从而中断当前循环。

在3种循环语句中使用break语句的形式如下:

while(...)
{
    ...
    break;
    ...
}
do
{
    ...
    break;
    ...
}while(...);
for
{
    ...
    break;
    ...
}

【实例】使用break跳出循环

public class Test04 {
	public static void main(String[] args) {
		for(int i=0;i<=100;i++) {
			System.out.println(i);
			if(i==5) {
				break;
			}
		}
		System.out.println("----end----");
	}
}

 运行结果如图所示:

 如果想让break跳出外层循环,Java提供了“标签”的功能,语法如下:

标签名:循环体{
    break标签名;
}

标签名:任意标识符。

循环体:任意循环语句;

break标签名:break跳出指定的循环体,此循环体的标签名必须与break的标签名一致。

带有标签的break 可以指定跳出的循环,这个循环可以是内层循环,也可以是外层循环。

【实例】用带有标签的break跳出外层循环。

public class Test05 {
	public static void main(String[] args) {
		Loop:for(int i=0;i<3;i++) {
			for(int j=0;j<6;j++) {
				if(j==4) {
					break Loop;
				}
				System.out.println("i="+i+"j="+j);
			}
		}
	}
}

运行结果如图所示:

 (2)continue语句

        continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳出本次循环结束前的语句,回到循环的条件测试部分,重新开始执行行循环。在 for 循环语句中遇到 continue 后,首先执行循环的增量部分,然后进行条件测试。在while和do…while 循环中,continue语句使控制直接回到条件测试部分。

在3种循环语句中,使用continue语句的形式如下:

while(...)
{
    ...
    continue;
    ...
}
do
{
    ...
    continue;
    ...
}while(...);
for
{
    ...
    continue;
    ...
}

【实例】输出1~20之间的奇数,使用continue跳出循环。

public class Test06 {
	public static void main(String[] args) {
		for(int i=1;i<20;i++) {
			if(i%2==0) {
				continue;
			}
			System.out.println(i);
		}	
	}
}

运行结果如图所示:

 与break语句一样,continue也支持标签功能,语法如下:

标签名:循环体{
    continue标签名;
}

标签名:任意标识符。

循环体:任意循环语句。

continue标签名:continue跳出指定的循环体,此循环体的标签名必须与continue的标签名一致。

猜你喜欢

转载自blog.csdn.net/weixin_65089091/article/details/127818913