(八)Java 循环结构 —— for、while、do...while

目录

一. 前言

二. Java 循环结构

2.1. for 循环

2.2. 增强 for 循环

2.3. while 循环

2.4. do…while 循环

2.5. continue 关键字

2.6. break 关键字

三. 课后习题


一. 前言

    循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环,选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。

二. Java 循环结构

    顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,就需要使用循环结构。Java 中有三种主要的循环结构:for、while、do...while。在 Java5 中引入了一种主要用于数组的增强型 for 循环。

2.1. for 循环

    虽然所有循环结构都可以用 while 或者 do...while 表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for 循环执行的次数是在执行前就确定的。语法格式如下:

for (初始化; 布尔表达式; 更新) {// 代码语句
}

关于 for 循环有以下几点说明:

  1. 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  2. 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为 false,循环终止,开始执行循环体后面的语句。
  3. 执行一次循环后,更新循环控制变量。
  4. 再次检测布尔表达式。循环执行上面的过程。

实例:

public class Test {public static void main(String[] args) {for (int x = 10; x < 20; x = x + 1) {System.out.print("value of x : " + x);System.out.print("\n");}}
}
// 运行结果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

2.2. 增强 for 循环

Java5 引入了一种主要用于数组/集合的增强型 for 循环。

Java 增强 for 循环语法格式如下:

for (声明语句 : 表达式) {// 代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

实例:

public class Test {public static void main(String[] args) {int[] numbers = { 10, 20, 30, 40, 50 };for (int x : numbers) {System.out.print(x);System.out.print(",");}System.out.print("\n");String[] names = { "James", "Larry", "Tom", "Lacy" };for (String name : names) {System.out.print(name);System.out.print(",");}}
}
// 运行结果:
10,20,30,40,50,
James,Larry,Tom,Lacy,

2.3. while 循环

while 是最基本的循环,它的结构为:

while (布尔表达式) {// 循环内容
}

只要布尔表达式为 true,循环体会一直执行下去。

实例:

public class Test {public static void main(String[] args) {int x = 10;while (x < 20) {System.out.print("value of x : " + x);x++;System.out.print("\n");}} 
} 
// 运行结果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

2.4. do…while 循环

    对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。语法如下:

do {// 代码语句
} while (布尔表达式);

注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

实例:

public class Test {public static void main(String[] args) {int x = 10;do {System.out.print("value of x : " + x);x++;System.out.print("\n");} while (x < 20);} 
} 
// 运行结果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

2.5. continue 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

continue 就是循环体中一条简单的语句,使用如下:

continue;

实例:

public class Test {public static void main(String[] args) {int[] numbers = { 10, 20, 30, 40, 50 };for (int x : numbers) {if(x == 30) {continue;}System.out.print(x);System.out.print("\n");}}
}
// 运行结果:
10
20
40
50

2.6. break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

break 的用法很简单,就是循环结构中的一条语句:

break;

实例1:

public class Test {public static void main(String[] args) {int[] numbers = { 10, 20, 30, 40, 50 };for (int x : numbers) {if(x == 30) {break;}System.out.print(x);System.out.print("\n");}}
}
运行结果:
10
20

实例2,break + label 跳出指定循环:

public class Test {public static void main(String[] args) {labA:for (int i = 1; i < 10; i++) {labB:for (int j = 1; j < 10; j++) {if (j > 2) {break labA;}System.out.println("i: " + i + ", j: " + j);}}}
}
// 运行结果:
i: 1, j: 1
i: 1, j: 2

三. 课后习题

1. 输出所有5位数中的回文数。

2. 循环输入周一到周五的成绩,要求成绩不能是负数,如果为负数,重新输入,结果显示,平均分,最高分,最低分。

3. 计算1-100之和。

4. 列出1-1000以内所有的奇数和偶数。

5. 列出1000以内所有的质数。

6. 输入 A 和 B 两个值,计算出他俩的最小公倍数和最大公因数。

7. 公鸡2元,母鸡1元,小鸡半元,每种至少一只,100元买100只鸡有多少可能性。

8. 鸡兔同笼:总共100个脚,各多少只 ?列出所有可能性。

9. 打印乘法表。

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

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

相关文章

html+js网页连接MQTT服务器new Paho.MQTT.Client

网页完整代码示例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible&quo…

YOLOv5改进 | 检测头篇 | 利用DynamicHead增加辅助检测头进行针对性检测(让小目标无所遁形)

一、本文介绍 本文给大家带来的改进机制是针对性的改进,针对于小目标检测增加P2层,利用DynamicHead(原版本一比一复现,全网独一份,不同于网上魔改版本)进行检测,其中我们增加P2层其拥有更高的分辨率,这使得模型能够更好地捕捉到小尺寸目标的细节。在这些的基础上配合Dyn…

Python爬虫实战014:利用requests库实现自动评论

文章目录 代码需要修改的参数如何修改headers 中的cookiedata中的contentdata中的articleId全网文章自动评论代码 import requests# 固定写法不要动 url = "https://blog.csdn.net/phoenix/web/v1/comment/submit" headers = {user-agent:

基于springboot+vue的社区团购系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

人工智能 AI 如何让我们的生活更加便利

每个人都可以从新技术中获益&#xff0c;一想到工作或生活更为便利、简捷且拥有更多空余时间&#xff0c;谁会不为之高兴呢&#xff1f;借助人工智能&#xff0c;每天能够多一些空余时间&#xff0c;或丰富自己的业余生活&#xff0c;为培养日常兴趣爱好增添一点便利。从电子阅…

【PostgreSQL】函数与操作符-数据类型格式化函数

PostgreSQL格式化函数提供一套强大的工具用于把各种数据类型 &#xff08;日期/时间、整数、浮点、数字&#xff09; 转换成格式化的字符串以及反过来从格式化的字符串转换成 指定的数据类型。下表列出了这些函数。这些函数都遵循一个公共的调用规范&#xff1a; 第一个参数是待…

Mybatis 分页

目录 一、Mybatis Plus 分页 1. 配置 &#xff08;1&#xff09;依赖 &#xff08;2&#xff09;创建MybatisPlusConfig配置类&#xff0c;配置分页插件 2. 纯代码分页查询 &#xff08;1&#xff09; 执行查询&#xff08;这里调用的是IService接口的page方法&#xff0…

微信小程序(六)tabBar的使用

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 1. 标签栏文字的内容以及默认与选中颜色 2. 标签栏图标的默认样式与选中样式 3. 标签选项路径页面 4.标签栏背景颜色 &#x1f43c;&#xff08;文末补充&#xff09;设置标签栏后为什么navigator标签无法跳转页面了 温…

【Dynamo学习笔记】Dynamo for Revit建模基础

目录 前言1 Revit模型的结构2 图元的操作2.1 图元的选择2.2 图元参数的读取和写入2.3 图元的创建2.3.2 创建轴网2.3.2 创建结构柱2.3.3 创建结构框架2.3.4 创建墙体 3 自定义节点 参考资料&#xff1a; &#xff08;1&#xff09; 罗嘉祥&#xff0c;宋姗&#xff0c;田宏钧. 《…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和短曝光功能的技术背景Baumer工业相机通过NEOAPI SDK使用相机日志跟踪功能1.引用合适的类文件2.通过NEOAPI SDK使用相机日志跟踪功能3.通…

burp靶场--ssrf

burp靶场–ssrf 1.什么是ssrf 服务器端请求伪造是一种 Web 安全漏洞&#xff0c;允许攻击者导致服务器端应用程序向非预期位置发出请求。 在典型的 SSRF 攻击中&#xff0c;攻击者可能会导致服务器连接到组织基础设施内的仅供内部使用的服务。在其他情况下&#xff0c;他们可…

python数字图像处理基础(七)——直方图均衡化、傅里叶变换

目录 直方图均衡化均衡化原理均衡化效果标准直方图均衡化自适应直方图均衡化 傅里叶变换原理低通滤波高通滤波 直方图均衡化 均衡化原理 图像均衡化是一种基本的图像处理技术&#xff0c;通过更新图像直方图的像素强度分布来调整图像的全局对比度。这样做可以使低对比度的区域…

Docker安装开源Blog(Typecho)

前言 首先这个镜像是centos7.9进行安装PHP环境&#xff0c;然后挂载目录去运行的&#xff0c;镜像大概300MB左右&#xff0c;没学过PHP&#xff0c;没办法给Dockerfile文件 参考文章&#xff1a;Docker安装Typecho | D-y Blog感知不强&#xff0c;图一乐https://www.wlul.top…

IntelliJ IDEA 拉取gitlab项目

一、准备好Gitlab服务器及项目 http://192.168.31.104/root/com.saas.swaggerdemogit 二、打开 IntelliJ IDEA安装插件 打开GitLab上的项目&#xff0c;输入项目地址 http://192.168.31.104/root/com.saas.swaggerdemogit 弹出输入登录用户名密码&#xff0c;完成。 操作Comm…

学习JavaEE的日子 day13 封装 static private this 类加载机制

Day13 1. private – 私有化 理解&#xff1a;private是访问修饰符的一种&#xff0c;访问修饰符规定了访问权限. 作用&#xff1a; ​ 1.private修饰属性&#xff1a;该属性只能在类的内部使用 ​ 2.private修饰方法&#xff1a;该方法只能在类的内部使用 应用场景&#xff1…

vue+elenemt分页+springboot

1、编写模板 <!-- 搜素框 --><el-input placeholder"请输入姓名" v-model"keyWord" style"width: 400px"><el-button slot"append" icon"el-icon-search" click"searchByKeyword()"></el-bu…

HBuilder X中uView UI框架的安装及使用

开发工具: HBuilder X 在最上方的工具中点击 插件安装 ——> 安装新插件 ——> 前往插件市场安装 在作者排行榜中找到 uView UI 选择该版本 然后点击下载并导入HBuilder X 然后选择你想导入的项目 在项目根目录中的main.js中&#xff0c;引入并使用uView的JS库&#xff…

《Linux C编程实战》笔记:出错处理

这一节书上把它放到线程这一章&#xff0c;按理说应该在前面就讲了 头文件errno.h定义了变量errno&#xff0c;它存储了错误发生时的错误码&#xff0c;通过错误码可以得到错误的信息 程序开始执行时&#xff0c;变量errno被初始化为0。很多库函数在执行过程中遇到错误时就会…

数字身份所有权:Web3时代用户数据的掌控权

随着Web3时代的来临&#xff0c;数字身份的概念正焕发出崭新的光芒。在这个数字化的时代&#xff0c;用户的个人数据变得愈加珍贵&#xff0c;而Web3则为用户带来了数字身份所有权的概念&#xff0c;重新定义了用户与个人数据之间的关系。本文将深入探讨Web3时代用户数据的掌控…

COCO数据集下载

目录 数据集介绍 方法一 方法二 数据集介绍 COCO&#xff08;Common Objects in Context&#xff09;数据集是一个广泛用于计算机视觉任务的大型图像数据集。它是由微软研究&#xff08;Microsoft Research&#xff09;创建的&#xff0c;旨在促进计算机视觉领域的研究和发展…