14_循环语句

第十四章 循环语句

作者:张子默

一、循环概述

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

1、循环结构的基本组成部分

  • 初始化语句:在循环开始最初执行,而且只做唯一一次。

  • 条件判断:如果成立,则循环继续;如果不成立,则循环退出。

  • 循环体:重复要做的事情内容,若干行语句。

  • 步进语句(步进表达式):每次循环之后都要进行的扫尾工作。

二、for循环

1、语法格式

	for (初始化表达式①; 布尔表达式②; 步进表达式④) {
		循环体③;
	}

2、执行流程

  • 执行顺序:①②③④→②③④→②③④…②不满足为止

  • ①负责完成循环变量初始化

  • ②负责判断是否满足循环条件,不满足则跳出循环

  • ③具体执行的语句

  • ④循环后,循环条件所涉及变量的变化情况

在这里插入图片描述

	public static void main(String[] args) {
		//控制台输出10次HelloWorld,不使用循环
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");
		
		//用循环改进,循环10次
		//定义变量从0开始,循环条件为<10
		for(int x = 0; x < 10; x++) {
			System.out.println("HelloWorld"+x);
		}
	}

3、练习

	public class Demo01For {
		public static void main(String[] args) {
			for(int i=1; i<=100; i++) {
				System.out.println("我错了!原谅我吧!" + i);
			}
			System.out.println("程序停止");
		}
	
	}
  • 循环练习:使用循环,计算1-100之间的偶数和

    	public static void main(String[] args) {
    		//1.定义一个初始化变量,记录累加求和,初始值为0
    		int sum = 0;
    		//2.利用for循环获取1‐100之间的数字
    		for (int i = 1; i <= 100; i++) {
    			//3.判断获取的数组是奇数还是偶数
    			if(i % 2==0){
    				//4.如果是偶数就累加求和
    				sum += i;
    			}
    		}
    		//5.循环结束之后,打印累加结果
    		System.out.println("sum:"+sum);
    	}
    

三、while循环

1、语法格式

	初始化表达式①;
	while(布尔表达式②) {
		循环体③;
		步进表达式④;
	}

2、执行流程

  • 执行顺序:①②③④→②③④→②③④…②不满足为止

  • ①负责完成循环变量初始化

  • ②负责判断是否满足循环条件,不满足则跳出循环

  • ③具体执行的语句

  • ④循环后,循环条件所涉及变量的变化情况

在这里插入图片描述

  • while循环输出10次HelloWorld

    	public static void main(String[] args) {
    		//while循环实现打印10次HelloWorld
    		//定义初始化变量
    		int i = 1;
    		//循环条件<=10
    		while(i<=10){
    			System.out.println("HelloWorld");
    			//步进
    			i++;
    		}
    	}
    
  • while循环计算1-100之间的和

    	public static void main(String[] args) {
    		//使用while循环实现
    		//定义一个变量,记录累加求和
    		int sum = 0;
    		//定义初始化表达式
    		int i = 1;
    		//使用while循环让初始化表达式的值变化
    		while(i<=100){
    			//累加求和
    			sum += i ;
    			//步进表达式改变变量的值
    			i++;
    		}
    		//打印求和的变量
    		System.out.println("1‐100的和是:"+sum);
    	}
    

3、练习

	/*
	while循环有一个标准格式,还有一个扩展格式。
	
	标准格式:
		while(条件判断) {
			循环体
		}
		
	扩展格式:
		初始化表达式;
		while(条件判断) {
			循环体;
			步进表达式;
		}
	*/
	public class Demo02While {
		public static void main(String[] args) {
			for(int i=1; i<=10; i++) {
				System.out.println("我错啦!" + i);
			}
			System.out.println("==========");
			
			int i = 1; //1.初始化语句
			while(i <= 10) { //2.条件判断
				System.out.println("我错啦!" + i/*++*/); //3.循环体
				i++; //步进表达式
			}
		}
	
	}

四、do…while循环

1、语法格式

	初始化表达式;do {
		循环体;③
		步进表达式;}while(布尔表达式②);

2、执行流程

  • 执行顺序:①③④→②③④→②③④…②不满足为止。

  • ①负责完成循环变量初始化。

  • ②负责判断是否满足循环条件。

  • ③具体执行语句。

  • ④循环后,循环变量的变化情况。

在这里插入图片描述

  • 输出10次HelloWorld
		public static void main(String[] args) {
			int x=1;
			do {
				System.out.println("HelloWorld");
				x++;
			}while(x<=10);
		}

**do…while循环的特定:**无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的循环具有一定的风险性,因此初学者不建议使用do…while循环。

	public static void main(String[] args){
		do{
			System.out.println("无条件执行一次");
		}while(false);
	}

3、练习

	/*
	题目:求出1-100之间的偶数和。
	
	思路:
		1.既然范围已经确定是1到100之间,那么我就从1、2、3......一直到100这么多数字一个一个进行检查。
		2.总共有100个数字,并不是所有数字都能用,必须是偶数才能用,判断(if语句)偶数:num % 2 == 0
		3.需要一个变量,用来进行累加操作。也就好比一个存钱罐。
	*/
	public class Demo04HundredSum {
		public static void main(String[] args) {
			int sum = 0; //用来累加的存钱罐
			
			for (int i=1; i<=100; i++) {
				if(i % 2 == 0) { //如果是偶数
					sum += i;
				}
			}
			System.out.println("结果是:" + sum);
			
		}
	
	}

五、三种循环的区别

  • for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。

  • 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。

  • 凡是次数确定的场景多用for循环,否则多用while循环,在特定场景会使用do-while循环。

六、循环控制语句

1、break

使用场景:终止switch或者循环

  • 在选择结构switch中

  • 在循环语句中

  • 离开使用场景的存在是没有意义的

		public static void main(String[] args) {
			for (int i = 1; i<=10; i++) {
				//需求:打印完两次HelloWorld之后结束循环
				if(i == 3){
					break;
				}
				System.out.println("HelloWorld"+i);
			}
		}

练习

	/*
	break关键字的用法有常见的两种:
		1.可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
		2.还可以使用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。
		
	关于循环的选择,有一个小建议:
		凡是次数确定的场景多用for循环,否则多用while循环。
	*/
	public class Demo06Break {
		public static void main(String[] args) {
			for (int i=1; i <=10; i++) {
				//如果希望从第四次开始,后续全都不要了,就要打断循环
				if(i==4) { //如果当前是第4次
					break; //那么就打断整个循环
				}
				System.out.println("Hello" + i);
			}
		}
	
	}

2、continue

使用场景:结束本次循环,继续下一次循环

	public static void main(String[] args) {
		for (int i = 1; i <= 10; i++) {
			//需求:不打印第三次HelloWorld
			if(i == 3){
				continue;
			}
			System.out.println("HelloWorld"+i);
		}
	}

练习

	/*
	另一种循环控制语句是continue关键字。
	一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
	*/
	public class Demo07Continue {
		public static void main(String[] args) {
			for (int i=1; i <=10; i++) {
				if(i==4) { //如果当前是第4层
					continue; //那么跳过当前次循环,马上开始下一次(第五层)
				}
				System.out.println(i + "层到了!");
				
			}
		}
	
	}
发布了17 篇原创文章 · 获赞 1 · 访问量 501

猜你喜欢

转载自blog.csdn.net/a1448824839/article/details/104598335