JavaSE——循环结构

while循环语句

语法格式

		初始化表达式①;
		while(布尔表达式②){//布尔表达式=判断条件语句
			 循环体③;
			 步进表达式④;//控制条件语句
		}

程序执行原理

程序执行顺序为:
①→②→③→④
②→③→④
②→③→④


直到②(布尔表达式)不满足为止
注:
①(初始化表达式)负责完成循环变量初始化。
②(布尔表达式)负责判断是否满足循环条件,满足则进入循环语句,不满足则跳出循环。
③(循环体)具体执行的语句。
④(步进表达式)循环后,循环变量的变化情况。
在这里插入图片描述

例题

利用while循环打印出1~4之间的自然数

//打印1~4之间的自然数
public class WhileDemo{
	public static void main(String []args){	
		int count = 1;//定义变量x,初始值为1
		while(count<=4){//循环条件
			System.out.println(count);//条件成立,打印count的值
			count++;//count进行自增
		}
	}
}

利用while循环计算1-100之间的和

//while循环计算1-100之间的和
public class WhileDemo{
	public static void main(String []args){	
		int x = 1;
		int sum = 0;
		while(x<=100){//循环条件
			sum+=x;//sum=sum+x;
		}
		System.out.println(sum);
	}
}

for循环语句

语法格式

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

程序执行原理

程序执行顺序为:
①→②→③→④
②→③→④
②→③→④


直到②(布尔表达式)不满足为止
注:
①(初始化表达式)负责完成循环变量初始化。
②(布尔表达式)负责判断是否满足循环条件,满足则进入循环语句,不满足则跳出循环。
③(循环体)具体执行的语句。
④(步进表达式)循环后,循环变量的变化情况。
在这里插入图片描述

例题

利用for循环语句在控制台中输出10句HelloWorld语句

public class ForDemo{
	public static void main(String []args){
			//控制台输出10次HelloWorld
			for(int x=1;x<=10;x++){
				System.out.println("HelloWorld");
		}
	}
}

利用for循环语句计算1-100之间的偶数和

public class ForDemo{
	public static void main(String []args){
			//计算1-100之间的偶数和
			int sum=0;
			for(int x=1;x<=100;x++){
				if(x%2==0){
					sum+=x;
				}
			}
			System.out.println(sum);
	}
}

利用for循环语句计算1-5的和

public class ForDemo{
	public static void main(String []args){
		//计算1-5之间数据之和
			int sum=0;
			for(int x=1;x<=5;x++){
				sum+=x;
			}
			System.out.println(sum);
	}
}

do…while循环语句

语法格式

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

程序执行原理

程序执行顺序为:
①→③→④
②→③→④
②→③→④


直到②(布尔表达式)不满足为止
注:
①(初始化表达式)负责完成循环变量初始化。
②(布尔表达式)负责判断是否满足循环条件,满足则进入循环语句,不满足则跳出循环。
③(循环体)具体执行的语句。
④(步进表达式)循环后,循环变量的变化情况。
do…while循环最显著的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。
在这里插入图片描述

例题

利用do…while循环打印5次HelloWorld

public class DoWhileDemo{
	public static void main(String []args){
		//打印5次HelloWorld
		int count=1;
		do{
			System.out.println("HellloWorld");
			count++;
		}while(count<=5);
		
	}
}

for循环和while循环的区别

for 和 while 的小区别:
步进表达式所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继
续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消
失,能够提高内存的使用效率。
已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

跳转语句break、continue

break

continue

死循环

死循环:也就是循环中的布尔表达式永远为true,死循环的是永不结束的循环。例如:

while(true){
}

循环嵌套

释义

所谓嵌套循环,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。嵌套循环中,总共的循环次数=外循环次数*内循环次数

语法格式

for(初始化表达式①; 循环条件②; 步进表达式⑦) {
	for(初始化表达式③; 循环条件④; 步进表达式⑥) {
	执行语句⑤;
	}
}

程序执行原理

程序执行顺序为:
①→②→③→④→⑤→⑥
④→⑤→⑥
④→⑤→⑥


④→⑤→⑥
当内层循环的循环条件④不再满足时,执行
⑦→②→③→④→⑤→⑥
④→⑤→⑥
④→⑤→⑥


④→⑤→⑥
当内层循环的循环条件④不再满足时,执行
⑦→②→③→④→⑤→⑥
④→⑤→⑥
④→⑤→⑥


④→⑤→⑥




当外层循环的循环条件②不再满足时,整个嵌套循环执行完毕。
外层循环每执行1次,内层循环就执行多次
比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。

例题

使用嵌套循环打印一个5*8的矩形

public class NestedLoop{
	public static void main(String[]args){
		//打印一个5*8的矩形
		/*
		外层循环5次,内层循环8次。总共循环40次
		*/
		
		for(int x=1;x<=5;x++){
			for(int y=1;y<=8;y++){
				System.out.print("*");//打印8个*为一排
			}
			System.out.println();//内层打印了一排 * 就换一行
		}
	}
}

运行结果
在这里插入图片描述

有关循环的练习题

1、求水仙花数
输出所有的水仙花数,所谓水仙花数是指一个3位数,其每位数字立方和等于其本身,如153=111+333+555=1+27+125

/* 输出所有的水仙花数:
* 	所谓水仙花数是指一个3位数,其每位数字立方和等于其本身
* 	如 153=1*1*1+3*3*3+5*5*5=1+27+125=153
* 
       解题思考:
* 1、三位数的范围为 [100,999]
* 2、水仙花数的条件:每位数字的立方和等于其本身
* 	①:每位数:个位、十位、百位
* 		number%10 —— number的个位数
* 		number/10%10 —— number的十位数
* 		number/100%10 —— number的百位数
* 	②:判断点——立方和相加等于其本身
	总结思路:
	首先来一个循环 定义一个未知数,这个未知数的循环条件为 100<=未知数<=999
	循环内部拆解出这个未知数的个、十、百位数 然后再将这三个位数先各自>立方
	再相加并将相加后的结果与这个未知数进行比较如果相等则表示这个未知>数是一个水仙花数
* */
public class NarcissisticNumber {

	public static void main(String[] args) {
		for (int number = 100; number >= 100 && number <= 999; number++) {
			int gewei = number % 10;
			int shiwei = number / 10 % 10;
			int baiwei = number / 100 % 10;
			if (gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei == number) {
				System.out.println(number);
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立志Java工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值