目录
1、循环结构
?for循环? ? ? ? ? ? ?
while循环
do…while循环
2.循环嵌套的使用
? ?双重for循环:
?3.跳转控制语句
continue
return
1、循环结构
?for循环 ? ? ? ? ? ? ?
?语句格式: ? ? ? ? ? ? ? ? ?for(初始化语句;判断条件语句;控制条件语句){ ? ? ? ? ? ? ? ? ? ? 循环体语句; ? ? ? ? ? ? ? ? }
执行流程: A:执行初始化语句 B:执行判断条件语句,看其结果是true还是false 如果是false,循环结束。 如果是true,继续执行。 C:执行循环体语句? D:执行控制条件语句? E:回到B继续
注意判断条件语句的结果是一个boolean类型。
![](https://img-blog.csdnimg.cn/af5eb76741d44bcd9520dd8dec0b7e9b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
(1)现在我们利用for循环实现一个简单的程序:数据1~10的输出
? ?![](https://img-blog.csdnimg.cn/5194e9fa301e4dc295e2cae3c0b0b8f6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?(2)然后再利用for循环实现数据1~10的和:
![](https://img-blog.csdnimg.cn/b099a2d81d604fa4a33366e99fd83c1c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
? ?(3)利用for循环实现1~100之间的所有偶数的和以及所有奇数的和:
![](https://img-blog.csdnimg.cn/d17afe8ec0df46b789099095b1a49150.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?(4)结合DAY4中的键盘录入,实现一个程序能输出一个数据的阶乘。
? ? ? ?a:导包 import java.util.Scanner; ? ? ? ?b:创建键盘录入对象 Scanner sc = new Scanner(System.in); ? ? ? ?c:调用方法接收键盘录入的数据 ? ? ? ? sc.nextInt() 接收一个int类型的数据
![](https://img-blog.csdnimg.cn/1488cddcdc59491abaa0c310c9f4c6bd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?(5)利用for循环输出所有满足:(个位等于万位 ;十位等于千位; 个位+十位+千位+万位=百位)的五位数。
![](https://img-blog.csdnimg.cn/b515f16f9c64457ea8ba85295a4a169a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
while循环
语句格式: 基本格式 ? ?while(判断条件语句) { ? ? ? ? ?循环体语句; ? ?} 扩展格式 ? ?初始化语句; ? ?while(判断条件语句) { ? ? ? ? ?循环体语句; ? ? ? ? ?控制条件语句; ? ? }
![](https://img-blog.csdnimg.cn/bee29cc53af645d99126315bc4dbb490.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16) ?
?for循环语句和while循环语句可以等价转换,区别是for循环中条件控制语句中变量在for循环结束后就无法访问,while可以继续使用。
(1)利用while循环输出10个Hello World。
![](https://img-blog.csdnimg.cn/c5c9ec4633114b67a5912ca9c0ba8461.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
(2)利用while循环实现1~100之间所有数据的和:
![](https://img-blog.csdnimg.cn/e87f05d025f049dd8f40c54631a2fe80.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
(3)利用while循环实现:现在有一个能对折的物体,厚度为:1m。请问,折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
![](https://img-blog.csdnimg.cn/bb5b1b87b8304851bc840f1b538dbd89.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?(4)小明从今天开始存钱,每天能存6元,但第五天和以后的每五天都会用掉10元,请问小明多久才能存到100元。
![](https://img-blog.csdnimg.cn/b64fca38567a4d72a2fe563db480d809.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?
?for循环适合针对一个范围判断进行操作 ,while循环适合判断次数不明确操作
do…while循环
语句格式: 基本格式 ? ?do { ? ? ? ? ?循环体语句; ? ?}while((判断条件语句); 扩展格式 ? ?初始化语句; ? ?do { ? ? ? ? ?循环体语句; ? ? ? ? ?控制条件语句; ? ? } while((判断条件语句);
![](https://img-blog.csdnimg.cn/ebfd1969245f42c682cac75f5a434c3d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
do…while循环至少会执行一次循环体。 for循环和while循环只有在条件成立的时候才会去执行循环体。写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
(1)利用do...while循环实现1~100之间所有的数据之和。
![](https://img-blog.csdnimg.cn/4c338f2260a148efa08a95ec3619caa1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
? while(true){}是死循环
2.循环嵌套的使用
? ?双重for循环:
? ?外层for循环控制行,内层for循环控制列。
(1)利用双重for循环打印出4行五列的*图案
![](https://img-blog.csdnimg.cn/3d4d18a3951d4e6e94b3f494afb5d69e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?(2)继续利用双重for循环实现:打印出5行5列且每行*图案比上一行多一个的图案。
![](https://img-blog.csdnimg.cn/d165325a9f844e03a75a94faa5411b00.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?(3)利用双重for循环在控制台输出九九乘法表。
![](https://img-blog.csdnimg.cn/be3b75f07daf4b38b7944ad374e902dc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
?3.跳转控制语句
? ?break
? ?break的使用场景: ? ?在选择结构switch语句中,在循环语句中 ? ?离开使用场景的存在是没有意义的? ? ?break的作用: ? ?跳出单层循环,跳出多层循环 ? ?带标签的跳出 格式:标签名: 循环语句 标签名要符合Java的命名规则 ?
![](https://img-blog.csdnimg.cn/7833d9ae444c46589f834d95aa458ada.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16)
可以看出我在for循环中添加了一个if语句,当i=5时,程序中断,最终的输出数据只输出到了4,此时,break就起到了跳出循环的作用。
continue
?continue的使用场景: ? 在循环语句中 ? 离开使用场景的存在是没有意义的 ? continue的作用: ? 单层循环对比break,然后总结两个的区别 ? break ?退出当前循环 ? continue ?退出本次循环
![](https://img-blog.csdnimg.cn/b330934dd680490fb7a477a25b2bce71.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMTblubTkuYnliqHmlZnogrI=,size_20,color_FFFFFF,t_70,g_se,x_16) ?
还是一样用for循环输出1~10,在for循环中添加if语句,当等于5时,使用continue,可以看出输出的数据只是少了5。说明continue只是跳出了本次循环,继续接下来的循环。
return
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法(结束循环其实是结束了main方法)
?方法的使用下次在说
|