跟我20天学Java:03-6个案例手把手带你学循环结构

本文详细介绍了Java编程中的循环控制结构,包括for、while和do-while循环的使用,以及循环嵌套和死循环的概念。通过实例解析了如何计算数字和、判断水仙花数、模拟密码验证等常见问题,帮助初学者掌握Java循环控制的基本技巧。
摘要由CSDN通过智能技术生成

更多Java全套学习资源均在专栏,持续更新中↑↑戳进去领取~

🍅2022年全新Java学习路线图,含源码+笔记,另附在职提升课
🍅跟我20天学Java:01-计算机基础以及JDK、IDEA等安装详解
🍅跟我20天学Java:02-自动类型转换,表达式的自动类型转换,强制类型转换
🍅跟我20天学Java:03-分支结构if分支,switch分支

🍉Maven简介以及手把手教你下载安装

更多内容加急更新,从安装开始学起来👼



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 = 0for (int i = 1; i <= 5; i++) {       sum += i;
}

循环结束后,输出求和变量即是结果。

for循环案例2

需求:求1-10之间的奇数和,并把求和结果在控制台输出。

方式一:

  1. 定义for循环使其能够依次访问到:1、2、3、4、5… 10。

  2. 在for循环中,通过if筛选出奇数

for (int i = 1; i <= 10; i++) {	if (i % 2 == 1) {
	      // i = 1 3 5 7…        }
}
  1. 在循环外定义一个整数变量sum用来累加这些数据。

方式二:

定义for循环使其能够依次访问到:1、3、5 、7 、9。

for (int i = 1; i <= 10; i+=2) {
}

在循环外定义一个整数变量sum用来累加这些数据。

for循环案例3水仙花数

需求:在控制台输出所有的“水仙花数”,水仙花数必须满足如下2个要求:

水仙花数是一个三位数

水仙花数的个位、十位、百位的数字立方和等于原数

分析:

  1. 定义一个for循环从“100一直到999”。
  2. 每次访问到数据后,提取该数据的:个位、十位、百位数字。
  3. 使用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("*****");
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值