循环的结构

一.简介

循环结构,一般常用在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;同时列举…

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…

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。在本…

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; 检查模…

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

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

精华版 | 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;为您带来前所未有的艺术观赏体验。体验者足不出户即可置身于一个充满创意与灵感的虚拟艺术空间。 我们深入了解每一位客户的需求与…

RestTemple请求GET接口403

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

华为联运:资源混淆导致的浮标显示异常

问题 显示正常 正常情况&#xff0c;华为联运包登录成功之后会显示浮标&#xff08;悬浮球&#xff09;&#xff0c;拖动浮标会出现拖到此处隐藏字样&#xff0c;如下所示&#xff1a; 显示异常 而在我们的横屏游戏中&#xff0c;遇到拖动到此处隐藏有部分内容被遮挡了&…

Windows系统电脑远程桌面控制本地局域网内树莓派详细教程

文章目录 前言1. 树莓派安装xrdp2. 注册cpolar账号3. 安装cpolar内网穿透4. 创建隧道映射端口5. Windows远程桌面控制树莓派总结 前言 本文主要介绍如何通过cpolar内网穿透&#xff0c;映射3389端口&#xff0c;生成公网TCP端口地址&#xff0c;通过该公网地址来实现公网环境下…

网页基础三剑客

目录 一、网页开发技术 1&#xff0e;HTML 2&#xff0e;CSS 3&#xff0e;JavaScript 二、网页的结构 三、 网页的分类 1&#xff0e;静态网页 2&#xff0e;动态网页 1&#xff0e;jQuery 2&#xff0e;AJAX 3&#xff0e;DHTML 2.3.4 网页数据的格式 1&#xf…

使用深度强化学习预测股票:DQN 、Double DQN和Dueling Double DQN对比和代码示例

深度强化学习可以将深度学习与强化学习相结合&#xff1a;深度学习擅长从原始数据中学习复杂的表示&#xff0c;强化学习则使代理能够通过反复试验在给定环境中学习最佳动作。通过DRL&#xff0c;研究人员和投资者可以开发能够分析历史数据的模型&#xff0c;理解复杂的市场动态…

收银系统源码推荐,线下线上一体化收银系统

1.收银系统源码开发语言 核心开发语言: PHP、HTML5、Dart后台接口: PHP7.3后台管理网站: HTML5vue2.0element-uicssjs收银端【安卓/PC收银】: Dart3&#xff0c;框架&#xff1a;Flutter 3.11.0-6.0.pre.27商家小程序助手端: uniapp线上商城: uniapp 2.功能介绍 支持测试体验…

汇编程序入门指南

什么是机器语言&#xff1f; 机器语言就是由二进制数字构成的程序&#xff0c;CPU 可以直接对其解释、执行。 汇编语言、C 语言、Java、BASIC 等编程语言编写的程序&#xff0c;也都需要先转换成机器语言才能被执行。机器语言有时也叫作“原生代码”&#xff08;Native Code&…

智慧校园导航系统:技术驱动下的校园管理与师生体验革新

随着智慧校园建设的不断推进&#xff0c;校园导航系统作为提升校园管理效率、优化师生出行体验的重要工具&#xff0c;正逐渐成为各大高校的标配。本文将重点介绍维小帮智慧校园导航系统&#xff0c;如何通过创新的设计和功能&#xff0c;解决校园导航中的种种难题&#xff0c;…