Java基础知识三(循环结构,循环嵌套)

Java基础知识(三)

循环结构

1、对于某些相同后者相似的代码,需要反复的执行,可以使用循环结构减少代码的编写

2、代码写的少,程序运行的多

3、分类

​ for【常用】

​ while【常用】

​ do while

for循环

1、格式

for(初始化语句;循环条件表达式;变量的自增) {

​ 循环体语句;

}

for(int i = 0; i < 10;i++) {

​ System.out.println(“你好”);

}

2、执行流程

​ 1、执行初始化语句,只会执行一次,定义一个变量

​ 2、判断循环条件表达式,循环条件表达式的结果必须是boolean类型,要么是true,要么是false

​ 3、如果是false的话,for循环结束

​ 4、如果是true的话,执行循环体语句(要重复执行的代码)

​ 5、执行变量的自增,变量可以自增也可以自减,同时还可以自增自减多步

​ 6、在回到第二步

3、说明

​ 初始化语句只会执行一次

​ 循环体语句,控制循环的次数

​ 变量的自增,一定是向循环结束的方式自增的

​ 循环体语句,不断循环的代码

class Demo01_for循环 {
    
    

	public static void main(String[] args) {
    
    
		//打印5句你好
		for(int i = 0; i < 100; i++) {
    
    
			System.out.println("你好");
		}
		
		
	}
}

练习

1、打印数字1-5

2、打印数字5-1

3、求1-100之间的和

4、求1-100之间的偶数和

class Demo02_for循环练习01 {
    
    
	/*
		1、打印数字1-5

		2、打印数字5-1

		3、求1-100之间的和

		4、求1-100之间的偶数和
	
	*/
	public static void main(String[] args) {
    
    
		//第一题
		/*for(int i = 1; i <= 5; i++) {
			System.out.println(i);
		}*/

		//第二题
		/*for(int i = 1; i <= 5; i++) {
			System.out.println(6 - i);
		}*/
		/*for(int i = 5; i >= 1; i--) {
			System.out.println(i);
		}*/
		
		//第三题
		/*int sum = 0;
		for(int i = 1; i <= 100; i++) {
			sum += i;
		}

		System.out.println(sum);*/

		/*int sum = 0;
		for(int i = 1; i <= 100; i++) {
			if(i % 2 == 0) {//偶数
				sum += i;
			}
		}
		System.out.println(sum);*/
		
		//第四题
		int sum = 0;
		for(int i = 2; i <= 100; i += 2) {
    
    
			sum += i;
		}
		System.out.println(sum);
	
	}
}

5、列举所有的四叶玫瑰数,并统计四叶玫瑰数的个数

​ 四叶玫瑰数:是一个四位数,各个位上的四次方和等于该数字本身

class Demo03_四叶玫瑰数01 {
    
    
	
	
	public static void main(String[] args) {
    
    
		int count = 0;
		for(int i = 1000; i < 10000; i++) {
    
    
			//求出i的个位十位百位千位
			int ge = i % 10;
			int shi = i / 10 % 10;
			int bai = i / 100 % 10;
			int qian = i / 1000;
			if(ge * ge * ge * ge + shi * shi * shi * shi + bai * bai * bai * bai + qian * qian * qian * qian == i) {
    
    
				
				System.out.println(i);
				count++;

			}
		}
		System.out.println("四页玫瑰数的个数:" + count);

	}
}


for循环的注意事项

1、for循环中初始化语句声明的i只能在for循环中进行使用,出了for循环就不能使用了

2、如果语句体只有一句的话,大括号可以省略不写,建议任何使用都要加上大括号,如果不写,只能控制第一句语句体

3、在左大括号前面不要加上分号,有左大括号就没有分号,加上分号之后,for循环就控制不了语句体

class Demo04_for注意事项 {
    
    

	public static void main(String[] args) {
    
    
		/*int j = 10;
		for(; j <= 11; j++) {
			System.out.println("你好");
		}*/

		/*for(int i = 10; i <= 11; i++) {
			System.out.println("你好");
		}
		//System.out.println(i); 报错,变量i只能在for循环中进行使用*/


		//只会打印一次你好,加上分号之后,for循环控制不了语句体
		/*for(int i = 1; i <= 100; i++); {
			System.out.println("你好");
		}*/
		
		//如果不写大括号,只能控制第一句语句体   打印10次你好,和一次我很好
		for(int i = 1; i <= 10; i++) 
			System.out.println("你好");
		System.out.println("我很好");
		
		 
	}
}

while循环

1、格式

初始化语句;

while(循环条件表达式) {

​ 循环体语句;

​ 变量的自增;

}

int i = 0;

while(i < 5) {

​ System.out.println(“你好”);

​ i++;

}

2、执行流程

​ 1、执行初始化语句,只执行一次

​ 2、判断循环条件表达式,结果必须是boolean类型,要么是true要么是false

​ 3、如果是false的话,while循环结束

​ 4、如果是true的话,执行循环体语句

​ 5、执行变量的自增,变量可以自增也可以自减

​ 6、在回到第二步

3、不要忘记变量的自增,如果不写的话,导致死循环

4、定义的初始化语句,不仅可以在while循环中使用,还可以在整个main方法中进行使用

class Demo05_while循环 {
    
    

	public static void main(String[] args) {
    
    
		//打印5句你好
		int i = 100;
		while(i <= 104) {
    
    
			System.out.println("你好");
			i++;
		}
		//出了while循环,i还可以继续使用
		System.out.println(i);
		
	}
}

dowhile循环

1、格式

初始化语句;

do {

​ 循环体语句;

​ 变量的自增;

}while(循环条件表达式);

2、执行流程

​ 1、执行初始化语句

​ 2、执行循环体语句

​ 3、在执行变量的自增

​ 4、判断循环条件表达式,返回结果是boolean,要么是true,要么是false

​ 5、如果是false的话,dowhile循环结束了

​ 6、如果是true的话,回到第二步

3、如果条件不满足的话,while和for循环有可能一次都不会执行语句体,dowhile最低要执行一次

class Demo06_dowhile循环 {
    
    

	public static void main(String[] args) {
    
    
		//打印5句你好
		int i = 0;
		do {
    
    
			System.out.println("你好");
			i++;
		}while(i < 5);


		for(int j = 0; j >= 100; j++) {
    
    
			System.out.println("我很好");
		}
		
		
	}
}

死循环

1、死循环不是程序中的错误,循环永远都不会停止

2、有些需求要用来死循环

键盘录入,猜数字游戏,不知道用户要猜多少次,这时候考虑用到死循环,当用户猜对之后,通过跳转语句将死循环结束掉

class Demo07_死循环 {
    
    

	public static void main(String[] args) {
    
    
		/*for(int i = 0; i <= 1; i--) {
			System.out.println("Hello World!");
		}*/

		/*for(;;) {
			System.out.println("你好");
		}*/

		while(true) {
    
    
			System.out.println("你好");
		}
		
	}
}

跳转语句

1、用来结束循环

2、continue 结束本次循环,继续下次循环

3、break 结束当前层次的循环

4、return 结束当前方法

5、System.exit(0); 结束虚拟机

class Demo08_跳转语句 {
    
    

	public static void main(String[] args) {
    
    
		
		for(int i = 1; i <= 10; i++) {
    
    
			if(i % 3 == 0) {
    
    
				// 结束本次循环继续下次循环
				//continue;  //1 2 4 5  7 8 10 你好
				
				//结束当前层次循环
				//break; //1 2  你好

				//结束当前方法
				//return; //1 2 

				//System.exit(0);  1  2
			}
			System.out.println(i);
		}
		
		System.out.println("你好");
	}
}

循环嵌套

1、在一个循环中,循环体语句又是一个复杂的操作(还是在一次循环),叫做循环的嵌套

2、格式

for(初始化语句1; 循环条件表达式1;变量的自增1) {

​ for(初始化语句2;循环条件表达式2;变量的自增2) {

​ 循环体语句;

}

}

3、执行流程

​ 1、执行初始化语句1,只执行一次

​ 2、判断循环条件表达式1,要么是true,要么是false

​ 3、如果是false的话,循环嵌套结束

​ 4、如果是true的话,执行内层循环

​ 5、内层循环执行完成之后,在执行变量的自增1

​ 6、回到第二步

​ 7、外层循环循环一次,内层循环就循环一遍

class Demo11_循环嵌套 {
    
    

	public static void main(String[] args) {
    
    
		

		for(int j = 1; j <= 3; j++) {
    
    
			for(int i = 1; i <= 5; i++) {
    
    
				System.out.println("跑圈。"  + "j =" + j + "。i = " + i);
			}
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/lizicheng1996/article/details/113143579