Java循环语句之 while · doWhile · for · 多重循环

简介: Java循环语句之 while 生活中,有些时候为了完成任务,需要重复的进行某些动作。如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈。在 Java 中实现功能时,也经常需要重复执行某些代码,例如,我们为了表示“浓烈的爱”,希望输出 1000 行“我爱慕课网!”。

Java循环语句之 while

生活中,有些时候为了完成任务,需要重复的进行某些动作。如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈。在 Java 中实现功能时,也经常需要重复执行某些代码,例如,我们为了表示“浓烈的爱”,希望输出 1000 行“我爱慕课网!”。显然,此时重复敲 1000 遍输出语句是不靠谱滴!!那么,有木有好的办法来解决呢? 有,循环语句

Java 常用的 3 种循环: while 、 do...while 、 for

本小节咱们先来聊聊 while

语法:

 

执行过程:

< 1 >、 判断 while 后面的条件是否成立( true / false )

< 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止

特点:先判断,后执行

如:

任务

一起来感受一下 while 的魅力吧!

实现功能:顺序输出 1 ~ 5 这 5 个数字。

实现思路:使用一个变量 i 代表 1 - 5 之间的数字,值从 1 开始,每次循环时输出 i 的值,并且对 i 的值加 1 ,只要 i 小于等于数字 5 就执行该循环

请在编辑器中的第 7 行,将 while 语句的条件补充完整,程序运行结果:

public class HelloWorld {
    public static void main(String[] args) {
        
		int i = 1; // 代表 1 - 5 之间的数字
        
		// 当变量小于等于 5 时执行循环
		while ( i<=5      ) {
            
			// 输出变量的值,并且对变量加 1,以便于进行下次循环条件判断
			System.out.println(i);
			i++;
		}
	}
}



Java循环语句之 do...while

do...while 循环与 while 循环语法有些类似,但执行过程差别比较大。

语法:

 

执行过程:

<1>、 先执行一遍循环操作,然后判断循环条件是否成立

<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止

特点: 先执行,后判断

由此可见,do...while 语句保证循环至少被执行一次

任务

光说不练是“假把式”,让我们来做个练习检验一下吧!

实现功能:计算 50 以内(包括 50 )的偶数之和

实现思路:首先定义一个变量 sum ,用来保存所有偶数的和,然后定义一个变量 num 代表 1--50 之间的偶数,值从 2 开始,每次循环执行时将 num 的值累加保存在变量 sum 中,并且将 num 值加 2 (偶数嘛,你懂得哈~~),只要 num 的值在 1--50 之内就重复执行该循环

请将编译器中的第 10、14 行补充完整。

运行结果为: 

public class HelloWorld {
    public static void main(String[] args) {
        
		int sum = 0; // 保存 1-50 之间偶数的和
        
		int num = 2; // 代表 1-50 之间的偶数
        
		do {
			//实现累加求和
            
            <span style="white-space:pre">		</span>sum+=num;
			num = num + 2; // 每执行一次将数值加2,以进行下次循环条件判断
            
		} while (num<=50); // 满足数值在 1-50 之间时重复执行循环
        
		System.out.println(" 50以内的偶数之和为:" + sum );
	}
}


50以内的偶数之和为:650

Java循环语句之 for

Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换。

语法: 

执行过程:

<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次

<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环

<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断

<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环

特点:相比 while 和 do...while 语句结构更加简洁易读

例如,输出 1000 遍“我爱慕课网”,使用 for 的实现代码为:

需要留心的几个小细节:

1、 for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。

    a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:

    b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:

在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环(关于 break 的用法会在后面介绍)。

    c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化,如:

2、 for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:

代码中,初始化变量部分同时对两个变量 i 和 j 赋初值,循环变量变化部分也同时对两个变量进行变化,运行结果:

3、 循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:

代码中,必须同时满足变量 i 小于 10 ,并且 i 不等于 5 时才会进行循环,输出变量 i 的值。

任务

小伙伴们, for 循环的使用你掌握了吗?让我们来检验一下吧。

实现功能:计算 1 到 100 之间不能被 3 整除的数之和

实现思路:定义一个变量 sum 用来保存数据和,定义一个变量 i 代表 1--100 之间的数据,值从 1 开始。通过 for 循环判断 i 是否是 3 的倍数,符合要求的数据保存在 sum 中。

请在编辑器中的第 6 行,将 for 语句补充完整。

运行结果为: 

public class HelloWorld {
    public static void main(String[] args) {
		int sum = 0; // 保存不能被3整除的数之和
		
		// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
		for (int i = 1; i<=100            ;i++         ) {
			
			// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
			if (i % 3 != 0) { 
				sum = sum + i; // 累加求和
			}
		}
		
		System.out.println("1到100之间不能被3整除的数之和为:" + sum);
	}
}


1到100之间不能被3整除的数之和为:3367




Java 循环语句之多重循环

循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。

如下所示:

例如:使用 * 打印长方形:

实现代码为:

执行流程:当 i = 1 时,外层循环条件成立,进入内层循环,开始打印第一行内容。此时, j 从 1 开始,循环 8 次,内层循环结束后换行,实现第一行 8 个 * 的输出。接下来返回外层循环 i 变为 2 ,准备打印下一行,依此类推,直到完成长方形的打印。

任务

能搞定二重循环么?测试一下先~~~~

实现功能:使用 * 打印直角三角形

实现思路:上面的图形中,第 1 行有一个 * 号,第 2 行有两个 * 号,第 3 行有三个 * 号,所以可以使用二重循环来实现。其中,外层循环控制行数,内层循环控制每行的 * 号数。同时,我们发现一个规律,当打印每行信息时,内层循环变量的最大值和外层循环变量的值相等。

 

请将编辑器中的第 7、11 行语句补充完整。

效果如下:

public class HelloWorld {
    public static void main(String[] args) {
        
		System.out.println("打印直角三角形");
        
		// 外层循环控制行数
		for (int i = 1;i<=3;i++              ) {
            
			// 内层循环控制每行的*号数
			// 内层循环变量的最大值和外层循环变量的值相等
			for (int j = 1;j<=i;j++              ) {
                
				System.out.print("*");
			}
            
			// 每打印完一行后进行换行
			System.out.println();
		}
	}
}



相关文章
|
2月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中stream API与传统for循环在性能上的对比,通过多个示例分析了不同场景下两者的优劣。作者指出,尽管stream API使代码更简洁,但不当使用会降低可读性和性能,特别是在处理大数据量时。实验结果显示,在多数情况下,普通for循环的性能优于stream API,尤其是在单次操作耗时较短但需多次执行的场景中。文章建议开发者在设计初期就考虑全局流程,避免重复使用stream流,以提升代码质量和性能。
Java循环操作哪个快?
|
2月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
5月前
|
存储 Java
|
3月前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
78 6
|
4月前
|
Java
java基础(2)循环语句for、while、do...while
本文介绍了Java中的基础循环语句,包括for循环、while循环和do...while循环。文章通过示例代码展示了for循环的基本结构和用法,while循环的先判断后执行逻辑,以及do...while循环的先执行后判断逻辑。这些循环语句在Java编程中非常常用,用于执行重复的任务。
66 4
java基础(2)循环语句for、while、do...while
|
3月前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
58 1
|
3月前
|
传感器 Java 测试技术
📖Java零基础-do-while循环语句的深入剖析
【10月更文挑战第5天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
49 1
|
4月前
|
Java
Java循环
Java循环
49 6
|
4月前
|
编译器
Java--for循环语句
Java--for循环语句
|
5月前
|
Java 索引