跟我20天学Java:03-6个案例手把手带你学循环结构
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟我20天学Java:03-6个案例手把手带你学循环结构相关的知识,希望对你有一定的参考价值。
更多Java全套学习资源均在专栏,持续更新中↑↑戳进去领取~
🍅2022年全新Java学习路线图,含源码+笔记,另附在职提升课
🍅跟我20天学Java:01-计算机基础以及JDK、IDEA等安装详解
🍅跟我20天学Java:02-自动类型转换,表达式的自动类型转换,强制类型转换
🍅跟我20天学Java:03-分支结构if分支,switch分支
更多内容加急更新,从安装开始学起来👼
文章目录
for循环
控制一段代码反复执行很多次。
for (初始化语句; 循环条件; 迭代语句) 循环体语句(重复执行的代码);
示例:
// 输出3次HelloWorld
for (int i = 0; i < 3; i++) System.out.println("Hello World");
for 循环案例详细流程说明
// 输出3次HelloWorld
for (int i = 0; i < 3; i++) System.out.println("Hello World");
执行的流程:
循环一开始,执行int i = 0 一次。
然后判断循环条件:0 < 3 返回true ,进入到循环体中执行输出 :helloWorld ,然后执行迭代语句i++ , 此时i=1了。
然后判断循环条件:1 < 3 返回true ,进入到循环体中执行输出 :helloWorld ,然后执行迭代语句i++ , 此时i=2了。
然后判断循环条件:2 < 3 返回true ,进入到循环体中执行输出 :helloWorld, 然后执行迭代语句i++ , 此时i=3了。
然后判断循环条件:3 < 3 返回false, 循环立即结束!!
for循环案例1
需求:求1-5之间的数据和,并把求和结果在控制台输出。
分析:
定义for循环使其能够依次访问到:1、2、3、4、5。
for (int i = 1; i <= 5; i++)
在循环外定义一个整数变量sum用来累加这些数据。
int sum = 0;
for (int i = 1; i <= 5; i++) sum += i;
循环结束后,输出求和变量即是结果。
for循环案例2
需求:求1-10之间的奇数和,并把求和结果在控制台输出。
方式一:
-
定义for循环使其能够依次访问到:1、2、3、4、5… 10。
-
在for循环中,通过if筛选出奇数
for (int i = 1; i <= 10; i++) if (i % 2 == 1)
// i = 1 3 5 7…
- 在循环外定义一个整数变量sum用来累加这些数据。
方式二:
定义for循环使其能够依次访问到:1、3、5 、7 、9。
for (int i = 1; i <= 10; i+=2)
在循环外定义一个整数变量sum用来累加这些数据。
for循环案例3水仙花数
需求:在控制台输出所有的“水仙花数”,水仙花数必须满足如下2个要求:
水仙花数是一个三位数
水仙花数的个位、十位、百位的数字立方和等于原数
分析:
- 定义一个for循环从“100一直到999”。
- 每次访问到数据后,提取该数据的:个位、十位、百位数字。
- 使用if判断:个位、十位、百位的数字立方和是否等于原数,等于则输出该数据。
思考
如果还要知道水仙花数的个数怎么办?
在循环外定义一个变量count用于记录水仙花数。
每输出水仙花数时,让count++。
1. . 如何找出水仙花数?
定义一个for循环从“100一直到999”。
每次访问到数据后,提取该数据的:个位、十位、百位数字。
看各个数的立方和是否等于原数,等于则输出原数据。
2. 如何计算出水仙花的个数?
在循环外定义一个变量count用于记录水仙花数。
每输出水仙花数时,让count++。
while循环格式与执行流程
初始化语句;
while (循环条件) 循环体语句(被重复执行的代码);
迭代语句;
示例:
int i = 0;while (i < 3) System.out.println("Hello World"); i++;
while循环的格式,执行流程是怎么样的?
初始化语句;
while (循环条件) 循环体语句;
迭代语句;
int i = 0;while (i < 3) System.out.println("Hello World"); i++;
while循环案例
珠穆朗玛峰(世界最高峰8848.86米)
需求:
世界最高山峰是珠穆朗玛峰(8848.86米=8848860毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,折叠多少次,可以折成珠穆朗玛峰的高度。
思路:
这种不清楚要循环多少次的情况可以选择用while实现。
分析步骤
定义变量存储珠穆朗玛峰的高度、纸张的高度。
double peakHeight = 8848860; // 山峰高度
double paperThickness = 0.1; // 纸张厚度
使用while循环,循环条件是(纸张厚度<山峰高度),内部控制纸张折叠,每折叠一次,纸张厚度为原来两倍,循环外定义计数变量,每折叠依次让该变量+1
int count = 0;
while (paperThickness < peakHeight) paperThickness *= 2; count++;
怎么解决此案例?
定义变量存储珠穆朗玛峰的高度、纸张的高度。
使用while循环,循环条件是(纸张厚度<山峰高度),内部控制纸张折叠,每折叠一次,纸张厚度为原来两倍,循环外定义计数变量,每折叠依次让该变量+1
for和while使用总结
其实whie能做的for都能实现
但是如果一开始不知道循环次数的情况下,建议使用while循环解决更专业。
do-while循环
先执行再判断循环条件。
初始化语句;
do
循环体语句;
迭代语句;
while (循环条件);
int i = 0;do System.out.println(“Hello World!"); i++; while( i < 3);
do-while循环的特点:一定会先执行一次循环体。
三种循环的区别
for循环 和 while循环(先判断后执行)
do…while (第一次先执行后判断)
for 和 while 的区别:
for循环和while循环的执行流程是一模一样的。
如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
for循环中,控制循环的变量只在循环中可以使用。While循环中,控制循环的变量在循环后还可以继续使用
int i = 0;
while (i < 3) System.out.println("Hello World");
i++;
System.out.println(i);
for (int i = 0; i < 3; i++ )
System.out.println(“Hello World");
System.out.println(i);
死循环
一直循环的执行下去,如果没有干预不会停止下来。
for(;;)
System.out.println("Hello World");
// 经典做法
while(true)
System.out.println("Hello World");
do
System.out.println("Hello World");
while (true);
案例密码验证
需求:系统密码是520,请用户不断的输入密码验证,验证不对输出
密码错误,验证成功输出欢迎进入系统,并停止程序。
分析:
使用while死循环,让用户不断输入数据
与密码比对:验证不成功输出密码错误、
验证成功输出欢迎进入系统,并使用break结束当前循环的执行。
循环嵌套
循环中又包含循环
for(int i = 0; i < 3; i++)
for(int j = 0; j < 5; j++)
System.out.println("我爱你");
嵌套循环的特点
外部循环每循环一次,内部循环全部执行完一次。
循环嵌套案例
需求:在控制台使用 * 打印出4行5列的矩形
for(int i = 1; i <= 4; i++)
System.out.println("*****");
以上是关于跟我20天学Java:03-6个案例手把手带你学循环结构的主要内容,如果未能解决你的问题,请参考以下文章
跟我20天学Java:02-自动类型转换,表达式的自动类型转换,强制类型转换
跟我20天学Java:02-分支结构if分支,switch分支