跟我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分支

🍉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("*****");
     

以上是关于跟我20天学Java:03-6个案例手把手带你学循环结构的主要内容,如果未能解决你的问题,请参考以下文章

跟我20天学Java:02-自动类型转换,表达式的自动类型转换,强制类型转换

跟我20天学Java:02-分支结构if分支,switch分支

手把手带你学R语言编程与数据分析

Carson带你学数据结构:手把手带你全面优化快速排序算法

跟我20天学Java:01-计算机基础以及JDKIDEA等安装详解

跟我20天学Java:01-计算机基础以及JDKIDEA等安装详解