【java探索之旅】走进循环结构 深入解析while、for和do while的用法

news2025/2/23 7:00:11
个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : Java编程秘籍
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一、循环结构
    • 1.1 while循环
    • 1.2 while代码示例
    • 1.3 break
    • 1.4 continue
  • 二、for循环
    • 2.1 基本语法
    • 2.2 执行过程
    • 2.3 代码示例
    • 2.4 for注意事项
  • 三、do while
    • 3.1 基本语法
    • 3.2 代码示例
  • 🌤️全篇总结

📑前言

循环结构是编程中非常重要和常用的一种控制结构,它允许程序重复执行一段代码,以实现特定的功能。在本文中,我们将详细介绍while循环、for循环和do while循环的语法和用法,并提供了一些示例代码来帮助读者理解和应用这些循环结构。

一、循环结构

1.1 while循环

基本语法

while(循环条件){
	循环语句;
}

循环条件为 true, 则执行循环语句; 否则结束循环

1.2 while代码示例

  • 代码示例1: 计算 1 - 100 的和
in
t n = 1;
int result = 0;
while (n <= 100) {
	result += n;
	n++;
} 
System.out.println(num);
// 执行结果
5050
  • 代码示例2: 计算 5 的阶乘
int n = 1;
int result = 1;
while (n <= 5) {
	result *= n;
	n++;
} 
System.out.println(num);
// 执行结果
120
  • 代码示例3: 计算 1! + 2! + 3! + 4! + 5!
int num = 1;
int sum = 0;
// 外层循环负责求阶乘的和
while (num <= 5) {
	int factorResult = 1;
	int tmp = 1;
	// 里层循环负责完成求阶乘的细节.
	while (tmp <= num) {
		factorResult *= tmp;
		tmp++;
} 
	sum += factorResult;
	num++;
} 
System.out.println("sum = " + sum);

注意事项

  1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
  2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
  3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
int num = 1;
while (num <= 10); {
	System.out.println(num);
	num++;
} 
// 执行结果
[无任何输出, 程序死循环]

此时 ; 为 while 的语句体(这是一个空语句), 实际的 { } 部分和循环无关. 此时循环条件 num <= 10 恒成立, 导致代码死循环了

1.3 break

break 的功能是让循环提前结束

代码示例:找到 100 - 200 中第一个 3 的倍数

int num = 100;
while (num <= 200) {
	if (num % 3 == 0) {
        System.out.println("找到了 3 的倍数, 为:" + num);
        break;
	} 
    num++;
} 
// 执行结果
找到了 3 的倍数,:102

执行到 break 就会让循环结束(在多层嵌套的循环中,一个break只能跳出一层循环)

1.4 continue

continue 的功能是跳过这次循环, 立即进入下次循环

  • 代码示例: 找到 100 - 200 中所有 3 的倍数
int num = 100;
while (num <= 200) {
	if (num % 3 != 0) {
		num++; // 这里的 ++ 不要忘记! 否则会死循环.
		continue;
	} 
    System.out.println("找到了 3 的倍数, 为:" + num);
	num++;
}

执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句

二、for循环

2.1 基本语法

for(表达式①;布尔表达式②;表达式③){
	表达式④;
}
  • 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
  • 表达式2: 循环条件,满则循环继续,否则循环结束
  • 表达式3: 循环变量更新方式

2.2 执行过程

①②③④—>②③④—>②③④—>②③④—>②③④—>②③④—>…—>②为false,循环结束

2.3 代码示例

  • 计算 1 - 100 的和
int sum = 0;
for (int i = 1; i <= 100; i++) {
	sum += i;
} 
System.out.println("sum = " + sum);
// 执行结果
5050
  • 计算 5 的阶乘
int result = 1;
for (int i = 1; i <= 5; i++) {
	result *= i;
} 
System.out.println("result = " + result);
  • 计算 1! + 2! + 3! + 4! + 5!
int sum = 0;
for (int i = 1; i <= 5; i++) {
	int tmp = 1;
	for (int j = 1; j <= i; j++) {
		tmp *= j;
	} 
    sum += tmp;
} 
System.out.println("sum = " + sum);

2.4 for注意事项

和while循环类似

  1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }

  2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.

  3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.

  4. 和while循环一样,结束单趟循环用continue,结束整个循环用break

三、do while

3.1 基本语法

do{
	循环语句;
}while(循环条件);

先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。

3.2 代码示例

打印 1 - 10

int num = 1;
do {
	System.out.println(num);
	num++;
} while (num <= 10);

注意事项

  1. do while 循环最后的分号不要忘记
  2. 一般 do while 很少用到, 更推荐使用 for 和 while.

🌤️全篇总结

本篇介绍了三种常见的循环结构:while循环、for循环和do while循环。在while循环中,根据循环条件的真假来决定是否执行循环体;for循环则通过三个表达式来控制循环的初始化、条件和更新;而do while循环是先执行循环体,再判断循环条件是否满足。此外,我们还介绍了break和continue语句的使用方法,break用于提前结束整个循环,而continue用于跳过本次循环的剩余代码,直接进行下一次循环。

循环结构对于处理重复性任务或遍历数据是非常重要的,它能够提高代码的效率和可读性,减少重复的代码量。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1586155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯第十一届c++大学B组详解

目录 1.字符串排序 2.门牌制作 3.即约分数 4.蛇型填数 5.跑步锻炼 6.七段码 7.成绩统计 8.回文日期 9.字串分值和 10.平面切分 1.字符串排序 题目解析&#xff1a;这个题目真没搞懂。有会的大佬教我一下谢谢。 2.门牌制作 题目解析&#xff1a;出过超级多这类题目&am…

Java springboot+vue宠物爱心组织管理系统附赠万字文档

项目演示视频: &#xff08;有文档&#xff09;Java springboot宠物爱心组织管理系统 项目介绍: &#xff08;有文档&#xff09;Java springboot宠物爱心组织管理系统 技术&#xff1a; 基于springboot Vue 的宠物爱心组织管理系统&#xff08;宠物爱心组织管理系统&#xf…

12-pyspark的RDD算子注意事项总结

目录 相近算子异同总结相近变换算子异同foreach和foreachPartitionfold和reducecoalesce和repatition 相近动作算子异同cache和persist 算子注意事项需要注意的变换算子需要注意的动作算子 PySpark实战笔记系列第三篇 10-用PySpark建立第一个Spark RDD(PySpark实战笔记系列第…

【记录】Prompt模板|作为甲方怎么清晰专业地描述自己的需求(又名“乙方,给你的甲方扔个GPT解放自己吧”)

这篇Prompt摘抄并修改自朋友送给我的书的第49页5.2.3让ChatGPT构建提示&#xff0c;质量挺不错&#xff0c;支持一下她的博客&#xff1a;【好书推荐2】AI提示工程实战&#xff1a;从零开始利用提示工程学习应用大语言模型。 书长这样&#xff1a; 不啰嗦了&#xff0c;正文如…

代码解读:使用Stable Diffusion完成相似图像生成任务

Diffusion models代码解读&#xff1a;入门与实战 前言&#xff1a;作为内容生产重要的一部分&#xff0c;生成相似图像是一项有意义的工作&#xff0c;例如很多内容创作分享平台单纯依赖用户贡献的图片已经不够了&#xff0c;最省力的方法就是利用已有的图片生成相似的图片作为…

vscode 之 win11前端环境安装(javascrip、html、nodejs以及插件推荐)

javascript 也可以用来编写一些小工具&#xff0c;包括但不限于浏览器的插件&#xff0c;浏览器的书签以及进行一些其他操作的小工具等。 这时候就需要进行安装前端相关的测试环境 1. nodejs &#xff08;1&#xff09;确保电脑存在 nodejs 的环境 在 cmd 输入 npm -v node -…

DataEase-V1.18版本源码通过Docker镜像部署与静态资源通过阿里云OSS存储实现看这一篇就够了

修改DataEase实现静态资源阿里云OSS存储 后端源码文件读取配置类配置 1.阿里云OSS配置类 /*** ClassName AliyunConfig.java* author shuyixiao* version 1.0.0* Description 阿里云OSS配置* createTime 2024年04月03日 10:03:00*/ Data Configuration public class AliyunC…

Docker端口一直占用问题,docker重置(端口无法释放)(彻底重置docker环境)

文章目录 背景解决方法&#xff1a;彻底重置docker环境1. 停止所有Docker容器2. 删除所有容器3. 删除所有Docker镜像4. 删除所有Docker网络5. 删除所有Docker卷6. 清理Dangling资源7. 停止Docker服务8. 删除Docker数据和配置文件9. 重启Docker服务10. 验证 在这里插入图片描述验…

PostgreSQL入门到实战-第十四弹

PostgreSQL入门到实战 PostgreSQL数据过滤(七)官网地址PostgreSQL概述PostgreSQL中BETWEEN 命令理论PostgreSQL中BETWEEN 命令实战更新计划 PostgreSQL数据过滤(七) BETWEEN运算符允许您检查值是否在值的范围内。 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容…

“桃花庵主”是我国哪位古代名人的称号?2024年4月12日蚂蚁庄园今日答案

原文来源&#xff1a;蚂蚁庄园今日答案 - 词令 蚂蚁庄园是一款爱心公益游戏&#xff0c;用户可以通过喂养小鸡&#xff0c;产生鸡蛋&#xff0c;并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料&#xff0c;使用鸡饲料喂鸡之后&#xff0c;会可以获得鸡蛋&…

2024年腾讯云新用户云服务器价格表

腾讯云作为国内领先的云服务提供商&#xff0c;以其稳定可靠、灵活高效的服务赢得了广大用户的信赖。对于新用户而言&#xff0c;腾讯云提供了丰富的云服务器产品&#xff0c;并且制定了具有竞争力的价格策略&#xff0c;以吸引更多的新用户加入。 首先&#xff0c;我们来看一下…

【C++】STL--stackquene

这一节主要学习stack、quene和priority_quene的使用以及模拟实现&#xff0c;最后介绍了容器适配器。 目录 stack的介绍和使用 stack的介绍 stack的使用 stack的模拟实现 queue的介绍和使用 queue的介绍 queue的使用 queue的模拟实现 priority_queue的介绍和使用 pri…

Spring Boot与Vue联手打造智能化学生选课平台

末尾获取源码作者介绍&#xff1a;大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与…

嵌入式工程师需要掌握哪些技术?

嵌入式系统是当今科技领域中的重要组成部分&#xff0c;它们存在于我们生活的方方面面&#xff0c;从智能手机到汽车控制系统&#xff0c;从家电到医疗设备。因此&#xff0c;对于那些想要进入嵌入式行业的人来说&#xff0c;掌握一些必要的技术能力是至关重要的。在本篇中&…

springboot 反射调用ServiceImpl时报错:java.lang.NullPointerExceptio、,mapper为null【解决方法】

springboot 反射调用ServiceImpl时报错&#xff1a;java.lang.NullPointerException、mapper为null【解决方法】 问题描述问题分析解决方案创建SpringBootBeanUtil编写调用方法 executeMethod调用 总结 问题描述 在使用Spring Boot时&#xff0c;我们希望能够通过反射动态调用…

Win11又来「重大」更新!

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站ai人工智能工具 更多资源欢迎关注 Windows 11预览通道的22635.3420版本迎来了几个比较大的改进&#xff0c;主要有三个方面&#xff1a; …

Springboot 大事务问题的常用优化方案

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1.前言 2.什么是大事务 3.解决办法 3.1.少用Transactional注解 3.2..将查询…

医疗图像分割 | 基于Pyramid-Vision-Transformer算法实现医疗息肉分割

项目应用场景 面向医疗图像息肉分割场景&#xff0c;项目采用 Pytorch Pyramid-Vision-Transformer 深度学习算法来实现。 项目效果 项目细节 > 具体参见项目 README.md (1) 模型架构 (2) 项目依赖&#xff0c;包括 python 3.8、pytorch 1.7.1、torchvision 0.8.2(3) 下载…

【实战】ZLMediaKit问题解决

项目中遇到的问题 1.不带音频的rtsp转rtmp后,出现了音频 1.1判断元素rtsp是否有音频的方法 使用vlc进行访问rtsp流,看如图位置: 音频 -> 音轨 ,是否为灰色,为灰色就是不带音频 1.2 解决方法 在zlmediakit的web页面进行全局配置修改如图, 1.将3和4处修改为 否,再保存, …

网络协议——RSTP(快速生成树)与MSTP(多实例生成树)

一. RSTP 1. STP的不足 1、依靠计时器超时的方式进行收敛导致它的收敛时间需要30到50秒 2、端口状态和端口角色没有细致区分&#xff0c;指导数据转发依靠的不是端口状态而是端口所扮演角色。 3、如果拓扑频繁变化导致用户通信质量差&#xff0c;甚至通信中断&#xf…