Java学习笔记07三种循环_20200209

第7章 三种循环

循环就是一遍又一遍的执行代码

01 作业回顾

02 while循环

		while循环,先检查条件表达式的结果是否为true
		如果条析表达式的结果为true,那么就执行循环代码快
		当条件表达式结果为false,循环终止
		int count = 0;
		while (count < 5) {
//			while循环,先检查条件表达式的结果是否为true
//			如果条析表达式的结果为true,那么就执行循环代码快
//			当条件表达式结果为false,循环终止
			System.out.println("   *");
			System.out.println("  ***");
			System.out.println(" *****");
			System.out.println("*******");
			System.out.println(" *****");
			System.out.println("  ***");
			System.out.println("   *");
			
			count++; //设置循环条件, 能循环5次
//			System.out.println(count);
		}

在这里插入图片描述

发现的一个小例子,没有终止语句而造成的无限循环

public class day052 {
	public static void main(String[] args) {
		int count = 0;
		while (count < 5) {
			System.out.println("   *");
			System.out.println("  ***");
			System.out.println(" *****");
			System.out.println("*******");
			System.out.println(" *****");
			System.out.println("  ***");
			System.out.println("   *");

		}

	}

}

在这里插入图片描述

小例子:

		int count = 0;
		while(count < 5){
			System.out.println(count);
			count++; 
		}
		/*输出
		0
		1
		2
		3
		4*/

在这里插入图片描述
例3

		int x = 5;
		while(x < 5){
			System.out.println(x);
			x++;
		}
		//什么也不输出

例4

		int x = 5;
		while(x < 5) {
			System.out.println(x);
			x--;
		}
		//什么也不输出

例5 打印从100~1

		int  a = 100;
		while(a > 0){
			System.out.println(a);
			a--;
		}
		

在这里插入图片描述

例6 从1~100

		//从1~100
		int a = 1;
		while(a <= 100){
			System.out.println(a);
			a++;
		}

在这里插入图片描述

也可写为:

		//从1~100的另一种写法
		int a = 1;
		while(a <= 100) {
			System.out.println(101-a);
			a++;
		}
		

在这里插入图片描述

03 do while循环

	//do while循环先执行代码块,然后再检查条件是否满足
	//do while循环至少会执行一次
		//do while循环先执行代码块,然后再检查条件是否满足
		//do while循环至少会执行一次
		int count = 0;
		do {
			System.out.println(count);
			count++;
		} while( count < 5 );
		/* 
		 * 0
		 * 1
		 * 2
		 * 3
		 * 4
		 */

在这里插入图片描述
例2

		int count = 5;
		do {
			System.out.println(count);
			count++;
		}while(count < 5 );
		//输出 5	

在这里插入图片描述

04 for循环

	//for循环包括三个部分
	//初始化语句,int i = 0; 只执行一次
	//条件表达式,i < 5; 每次执行代码块之前,都要检查条件表达式结果是否为true
	//操作语句,i++; 每次代码块执行结束后,都要执行操作语句

for循环例1:

		int x = 0;
		while(x < 5) {
			System.out.print(x);
			x++;
		}
		//01234
		System.out.println();//换行
		
		//for循环包括三个部分
		//初始化语句,int i = 0; 只执行一次
		//条件表达式,i < 5; 每次执行代码块之前,都要检查条件表达式结果是否为true
		//操作语句,i++; 每次代码块执行结束后,都要执行操作语句
		
		for(int i = 0; i < 5; i++){
			System.out.print(i);
		}
		//01234
		System.out.println();//换行
		
		for (int j = 9; j > 0 ; j--) {
			System.out.print(j);
			
		}//987654321

在这里插入图片描述
2. 循环的嵌套

		//循环的嵌套
		for(int i = 0; i < 3; i++){
			System.out.println("开始内层循环");
			for(int j = 0; j < 4; j++){
				System.out.println("i = " + i +",j = " + j);//i = 0,j = 0
			}
			System.out.println("结束内层循环");
			//一共输出几行,每行都是什么
		}

开始内层循环
i = 0,j = 0
i = 0,j = 1
i = 0,j = 2
i = 0,j = 3
结束内层循环
开始内层循环
i = 1,j = 0
i = 1,j = 1
i = 1,j = 2
i = 1,j = 3
结束内层循环
开始内层循环
i = 2,j = 0
i = 2,j = 1
i = 2,j = 2
i = 2,j = 3
结束内层循环
在这里插入图片描述

05 嵌套的for循环


假期作业是将1~3课的课文抄写一遍

做4次假期作业
第1次假期作业,第1课。
第1次假期作业,第2课。
第1次假期作业,第3课。

第2次假期作业,第1课。
第2次假期作业,第2课。
第2次假期作业,第3课。

第3次假期作业,第1课。
第3次假期作业,第2课。
第3次假期作业,第3课。

第4次假期作业,第1课。
第4次假期作业,第2课。
第4次假期作业,第3课。

		//循环的嵌套
		for(int i = 1; i <= 4; i++){
			System.out.println("第"+ i + "次假期作业开始");
			for(int j = 1; j <= 3; j++){			
				System.out.println("第 " + j +"次课文");
			}
			System.out.println("第" + i + "次假期作业结整束");
		}1次假期作业开始
第 1次课文
第 2次课文
第 3次课文
第1次假期作业结整束
第2次假期作业开始
第 1次课文
第 2次课文
第 3次课文
第2次假期作业结整束
第3次假期作业开始
第 1次课文
第 2次课文
第 3次课文
第3次假期作业结整束
第4次假期作业开始
第 1次课文
第 2次课文
第 3次课文
第4次假期作业结整束

在这里插入图片描述

06 break语句

  1. break语句可以使循环终止
		for (int i = 0; i <  10; i++) {
			System.out.println(i);
			if(i == 5) {
				break;
			}
		}
		//012345
		//上面的for本来应该执行10次,当时当i==5时,因为有break语句,导致循环提前终止

在这里插入图片描述

  1. break语句也可以再while循环中使用
		int x = 0;
		while( x < 10 ) {
			System.out.println(x);
			if(x == 5) {
				break;
			}
			x++;
		}
		//012345

在这里插入图片描述

  1. break语句只会终止当前循环
		//break语句只会终止当前循环
		for (int i = 0; i < 2; i++) {
			for (int j = 0; j < 10; j++) {
				System.out.print(i + "" + j + ",");
				if(j == 5) {
					break;
				}
			}
			System.out.println();		
		}
		//00,01,02,03,04,05,
		//10,11,12,13,14,15,

在这里插入图片描述

07 continue语句

  1. continue语句会跳过循环代码后续的语句,并开始进行下一个迭代
		//continue语句会跳过循环代码后续的语句,并开始进行下一个迭代
		for (int i = 0; i <  10; i++) {
			
			if(i == 5) {
				continue;
			}
			System.out.print(i);
		}
		//012346789
		//上面的for本来应该执行10次,但是当i==5时,因为有continue语句,导致print语句没有执行,接着执行下一个迭代。

在这里插入图片描述
2. continue语句也可以再while循环中使用

		int x = 0;
		while (x < 10) {
			x++;
			if (x == 5) {
				continue;
			}
			System.out.print(x);

		}
		//01234678910

在这里插入图片描述

  1. continue语句只会对当前循环起作用
		for (int i = 0; i < 2; i++) {
			for (int j = 0; j < 10; j++) {				
				if(j == 5) {
					continue;
				}
				System.out.print(i + "" + j + ",");
			}
			System.out.println();		
		}
		//00,01,02,03,04,06,07,08,09,
		//10,11,12,13,14,16,17,18,19,

在这里插入图片描述

08 练习

  1. 求1~100的和。
		//1.求1~100的和。
		int total = 0; //
		for (int i = 1; i <= 100; i++) {
			total = total + i;
		}
		System.out.println(total);

在这里插入图片描述

  1. 打印1~100的偶数。
for(int i = 1; i <= 100; i++) {
			if( i % 2 == 0 ){
				System.out.println(i);
			}
		}

在这里插入图片描述

  1. 两个正整数m和n,求其最大公约数和最小公倍数。
		Scanner s = new Scanner(System.in);
		int m = s.nextInt();
		int n = s.nextInt();
		
		int min = m < n ? m : n;//最小数
		int max = m < n ? n : m;//最大数
		
		for (int i = min; i > 0; i--) {
			if((m % i == 0) && (n % i == 0)) {
				System.out.println("最大公约数是" + i);
				break;
				
			}
			                                                                                                                                                                                                                                                                                                                                                                      
		}
		
		for (int i = max; i <= m * n; i++) {
			if((i % m == 0 ) && (i % n == 0)) {
				System.out.println("最小公倍数是" + i);
				break;
			}
		}		
		s.close();

在这里插入图片描述
tip:
公式:
最小公倍数=两个数的乘(TUXV)积除以最大公约数.

  1. 打印1~100之间的数,其中3,5,7的倍数不打印。
		for (int i = 1; i <= 100; i++) {
			if((i % 3 ==0) || (i % 5 == 0) ||(i % 7 == 0)) {
				continue;
			}
			System.out.println(i);
		}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值