循环的结构

一.简介

循环结构,一般常用在while,do…while,for循环三个语法,但我们一般来常用的是for循环,while与do…while我们只需要掌握就可以。
于此同时,我们需要掌握一下循环控制的关键字,开始循环时,我们不用控制,想结束循环的时候,我们该如何操作呢??那就需要掌握跳出循环的关键字。但循环有时我们会遇到死循环,当然,你如果不怕被同事骂,你可以多写点死循环的代码,一般遇到死循环的问题,我们可以多去分析原因,避免写出死循环的代码。

二.循环语句

image.png

1.while语句

a.格式
//1.初始化条件 while(//2.条件)  {// 3.循环体(代码)// 4.循环控制}//注意: 返回结果为布尔的表达式
b.执行流程
  • 第一次: 1. 初始化条件 2. 判断条件 3. 循环体 4. 循环控制
  • 第二次: 1. 判断条件 3. 循环体 4. 循环控制
  • 第三次: 1. 判断条件 3. 循环体 4. 循环控制

  • 第n次: 1. 判断条件(不满足), 结束循环
c.流程图

image.png

d.例子
public class test1 {public static void main(String[] args) {System.out.println("程序开始");int i = 0;while (i < 10){System.out.println(++i);i++;}System.out.println("程序开始");}
}

image.png

2.do…while语句

a.格式
//初始化条件do {//循环体//循环控制    } while (条件)
b.执行流程
  • 第一次: 1.循环体 2.循环条件 3.条件判断
  • 第二次: 1.循环体 2.循环条件 3.条件判断
  • 第n次: 1.循环体 2.循环条件 3.条件判断 (不满足)

在这里,do…while有一个特点需要介绍:
至少会执行一次
image.png

c.流程图

image.png

d.例子
public class test1 {public static void main(String[] args) {System.out.println("程序开始");int i = 1;int sum = 0;do {// sum += i;sum = sum + i;i++;} while (i <=10 );System.out.println(sum);System.out.println("程序开始");}
}

image.png

3.for循环

a.格式
for(初始化条件; 条件;循环控制) {循环体}

例如:

for(int i = 1; i <= 10; i++) {循环体}
b.执行流程

其实for循环的执行流程与while差不多。
第一次: 1.初始化条件 2.判断条件 3. 循环体 4. 循环控制
第二次: 1. 判断条件 2. 循环体 3. 循环控制

第n次: 1判断条件(false,循环结束)

c.例子
public class Demo03For {public static void main(String[] args) {// 求1~10的和// 1. 初始化: int i = 1// 2. 条件 i <= 10// 3. 循环控制: i++// for (初始化; 条件; 循环控制) {}int sum = 0;for (int i = 1; i <= 10; i++) {sum += i;}System.out.println(sum);}
}
d.注意事项

我们可以快速生成一个for循环的代码,只需要写出fori,就可以选择
image.png
我们现在来说说i的作用域
image.png
所以在不同的for中,i互相不影响!!
image.png

4.死循环&循环控制关键字

a.简介

没有结束条件,或者结束条件永远为真,就会造成一直循环。

b.例子

将while do…while for三个循环分别举例
while---------

int j = 0;
while ( j < 10) {System.out.println(j);j--;
}while (true) {System.out.println("while~~~");
}

do…while--------

do {System.out.println("while~~~");
} while (3 > 2);

for---------

for (int i = 0; i <= 10; ) {System.out.println(i);
}

以上代码的通病是都没有结束条件,或者是无法满足结束条件。
在日常项目代码中我们应该尽量避免出现死循环。

c.循环控制关键字

break—

  • switch中使用
  • 循环中使用(结束当前循环)
public class Demo04 {public static void main(String[] args) {// breakfor (int i = 1; i < 10; i++) {if( i % 3 == 0) {break;}System.out.println(i);}}
}

continue-----

  • 结束当前次循环
public class Demo04 {public static void main(String[] args) {// breakfor (int i = 1; i < 10; i++) {if( i % 3 == 0) {continue;}System.out.println(i);}// 1 2 4 5 7 8System.out.println("程序结束!!!");}
}

return-----

  • 常用语方法中的返回值
  • 结束整个main方法
public class Demo04 {public static void main(String[] args) {// breakfor (int i = 1; i < 10; i++) {if( i % 3 == 0) {return;}System.out.println(i);}// 1 2 4 5 7 8System.out.println("程序结束!!!");}
}

image.png

希望各位读者大大点赞三连!!!!

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

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

相关文章

服务端⾼并发分布式结构演进之路

在进行技术学习过程中&#xff0c;由于大部分读者没有经历过一些中大型系统的实际经验&#xff0c;导致无法从全局理解一些概念&#xff0c;所以本文以一个"电子商务"应用为例&#xff0c;介绍从一百个到千万级并发情况下服务端的架构的演进过程&#xff0c;同时列举…

【绝对有用】什么是I/O密集型任务 什么是CPU密集型任务,异步IO 如何提高程序的效率?

I/O密集型任务和CPU密集型任务是计算机科学中两种不同类型的工作负载&#xff0c;它们的性能瓶颈在不同的资源上。理解这两者的区别和如何利用异步I/O提高程序效率对开发高效应用程序非常重要。 I/O密集型任务 I/O密集型任务是指那些主要受限于输入/输出操作&#xff08;例如…

SpringBoot:SpringBoot集成Druid监控慢SQL

一、前言 数据库连接池是一个至关重要的组成部分&#xff0c;一个优秀的数据库连接池可以显著提高应用程序的性能和可伸缩性。常见的连接池&#xff1a;Druid、HikariCP、C3P0、DBCP等等&#xff0c;不过目前大部分都是使用Druid或者SpringBoot默认的HikariCP&#xff01; 本文…

一个完整的Flutter应用

15.2 Flutter APP代码结构 | 《Flutter实战第二版》 我们先来创建一个全新的Flutter工程&#xff0c;命名为"github_client_app" 我们在项目根目录下分别创建imgs和fonts、jsons、l10n文件夹 工程目录如下&#xff1a; 在lib下创建文件夹如下&#xff1a; 在“jso…

服务器上设置pnpm环境变量

首先&#xff0c;确认 pnpm 是否已经安装&#xff1a; ls /www/server/nodejs/v20.10.0/bin/pnpm如果输出包含 pnpm&#xff0c;那么说明 pnpm 已经安装。 如果没有看到 pnpm&#xff0c;你可能需要重新安装它&#xff1a; npm install -g pnpm接下来&#xff0c;确保 PATH …

Word和Excel如何快速对齐姓名

日常工作经常遇到整理参会人员名单时&#xff0c;有2字姓名、3字姓名&#xff0c;为保证文档美观&#xff0c;你是否还在一个一个空格在敲空格&#xff1f; 今天刘小生分享如何在Word和Excel中快速对齐姓名&#xff0c;快来练起来吧&#xff01; 1. Word姓名对齐 【第一步】…

自动化平台总结(httprunner+djangorestframework+python3+Mysql+Vue)【基础结构构思】

一、前言 把一个以前自己搭建的自动化测试平台进行了一下重构升级&#xff0c;记录一下过程中的一些问题和总结。 二、简介 搭建的平台语言使用的是Python3.6&#xff0c;未来有空可能考虑加个java版本。前端用的Vue&#xff0c;主体是httprunner2.XDjangorest-framework&am…

Elasticsearch:智能 RAG,获取周围分块(二)

在之前的文章 “Elasticsearch&#xff1a;智能 RAG&#xff0c;获取周围分块&#xff08;一&#xff09; ” 里&#xff0c;它介绍了如何实现智能 RAG&#xff0c;获取周围分块。在那个文章里有一个 notebook。为了方便在本地部署的开发者能够顺利的运行那里的 notebook。在本…

小抄 20240616

1 都说要知行合一&#xff0c;只是口头说说的认知&#xff0c;不叫知&#xff0c;那是别人的认知&#xff0c;只是盲目乱窜的行动&#xff0c;也不叫行&#xff0c;那是别人的路径。 严格来说&#xff0c;每个人都在按照自己的所知去行动&#xff0c;每个人都是知行合一的&…

git 上拉下来的新项目web文件夹没有被idea管理,导致启动不了

让idea识别web项目&#xff0c;操作步骤&#xff1a; 1. 打开idea -- 文件 -- 项目结构&#xff1b; 2. 选择 模块 --- 添加 --- web -- 应用 --- 确定&#xff0c;就好了。 3. 文件夹中间出现个圆圈就是被识别到了。

HarmonyOS模拟器(phone-x86-api9)一直卡顿的解决方法

在DevEco Studio 3.1.1 Release版本中的Device Manager中创建本地的模拟器&#xff0c;创建phone-x86-api9模拟器成功&#xff0c;但是启动该新建的模拟器一直显示"HarmonyOS"logo图片&#xff0c;然后一直卡在这里&#xff0c;运行结果如下所示&#xff1a; 检查模…

关于ttyFIQ

Fast Interrupt Reques RK提供的fiq debugger功能是将debugger功能和普通uart功能代码集成到了一起 fiq debugger是集成到内核中的一种系统调试手段。 FIQ在arm架构中相当于nmi中断,fiq debugger把串口注册成fiq中断,在串口fiq中断服务程序中集成了一些系统调试命令。 NM…

Python3 使用 clickhouse_driver 操作 clickhouse

版本&#xff1a; Python 3.7 x86 clickhouse 24.6.1.3573 clickhouse-driver 0.2.7 代码一&#xff1a; from clickhouse_driver import Client# 准备参数 host "192.168.1.112" port 9000 username "default" password "123456"…

记录一次递归查询导致的 java.lang.StackOverflowError: null

问题截图&#xff1a; 由于作者使用递归统计信息&#xff0c;刚开始这个接口运行得正常&#xff0c;但是上线运行一段时间后接口就出现了&#xff0c;如图的栈溢出错误。可以看出确实是堆栈溢出了&#xff0c;解决栈溢出目前只有两种方式&#xff1a; 第一种调大栈的大小&…

2024印尼电商:十大跨境电商平台排名

印尼电商市场火热&#xff0c;正在领跑东南亚电商。各位想做东南亚跨境电商的卖家可得牢牢抓住这个创业机会了&#xff0c;今天为大家盘点了印尼排名前10的跨境电商平台&#xff0c;注意&#xff0c;排名并不仅仅基于月访问量数据&#xff0c;想入局的快快行动起来吧&#xff0…

精华版 | 2024 Q1全球威胁报告一览

概要 Q1最热门的安全事件是XZ/liblzma后门高危漏洞。开发人员Andres Freund一次偶然情况下&#xff0c;发现了XZ/liblzma存在后门并对该漏洞进行报告。XZ/liblzma是一个广泛使用的开源工具&#xff0c;掌握该后门攻击者几乎可以访问任何运行受感染发行版的 Linux 机器。这一事…

Hadoop3:MapReduce中实现自定义排序

一、场景描述 以统计号码的流量案例为基础&#xff0c;进行开发。 流量统计结果 我们现在要对这个数据的总流量进行自定义排序。 二、代码实现 我们要对总流量进行排序&#xff0c;就是对FlowBean中的sumFlow字段进行排序。 所以&#xff0c;我们需要让FlowBean实现Writab…

360vr党建线上主题展立体化呈现企业的文化理念和品牌形象

在现代科技的引领下&#xff0c;艺术与VR虚拟现实技术相融合必将成为趋势&#xff0c;深圳VR公司华锐视点荣幸地推出VR艺术品虚拟展厅&#xff0c;为您带来前所未有的艺术观赏体验。体验者足不出户即可置身于一个充满创意与灵感的虚拟艺术空间。 我们深入了解每一位客户的需求与…

面试操作系统八股文十问十答第三期

面试操作系统八股文十问十答第三期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;什么是用户态和内核态&am…

RestTemple请求GET接口403

问题描述 使用oss接口获取资源的时候&#xff0c;通过浏览器可以直接下载&#xff0c;在代码中使用RestTemplate的get方式访问的时候&#xff0c;出现403错误 问题排查 因为返回状态码是403&#xff0c;就想着是不是授权问题&#xff0c;因为有的接口是有防抓取规则的&…