03. Java 的流程控制

三种基本结构

顺序结构、循环结构和选择结构是程序设计中常见的三种基本结构,它们共同构建了程序的执行流程:

  1. 顺序结构:就像一条直线,代码按照从上到下的顺序依次执行,一个步骤接着一个步骤。这种结构简单直接,适用于执行一系列连续的操作。
  2. 选择/分支结构:它就像是一个岔路口,根据不同的条件来决定走哪条路。通过选择结构,我们可以根据不同的情况执行不同的代码块,实现灵活的决策和分支处理。
  3. 循环结构:就像一个循环的圈圈,它让代码在满足特定条件的情况下,重复执行一段代码。循环结构可以帮助我们处理大量相似或重复的任务,节省代码量并提高效率。

这三种结构相互结合,使得程序能够根据不同的情况和需求进行灵活的控制和执行。它们是编程的基础,帮助开发者构建出各种功能和逻辑复杂的程序。

顺序结构详解

顺序结构是指按照代码的自然顺序依次执行语句,一个语句执行完后接着执行下一个语句。

选择/分支结构详解

选择结构根据特定的条件来决定执行哪部分代码,可以使用 if-else 语句、switch 语句等。

if 条件语句详解

if 型
if (条件) {语句体...
}if (条件)
{语句体...
}// 如果条件体只有一句话,大括号可以省略但不建议这么做。
if (条件) 单条语句;if (条件)单条语句;

这四种写法推荐使用第 1 种,节省行数且结构清晰。

if else 型
if (条件) {语句体1...
} else {// 若不满足条件语句体2...
}
else if 型

else-if 结构实际上是 if-else 结构的多层嵌套,它明显的特点就是在多个分支中只执行一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中。

if (条件1) {语句体1...
} else if (条件2) {语句体2...
} else if (条件3) {语句体3...
} else {兜底语句体...
}
if 嵌套组合

if 语句可以任意嵌套。但一般情况下,嵌套层数不建议超过 3 层。

if (条件1) {if (条件2) {语句体1...} else {语句体2...}
} else {语句体3...
}

switch 语句

根据表达式的值执行不同的代码块。

其中 expression 必须为 byte, short, int, char, JDK 1.5 新增 enum 枚举, JDK 1.7 新增 String 类型

case 0: case 1: // 实现了多个 case 对应一种情况...break;
case 2: {// 在 case 语句块中加一对花括号也是可以的...break;
}
case 3: // 花括号可以省略...break;
default: // default 可选。花括号也是可选的。建议所有的 switch 都加上 default 子句的情况,且 default 子句建议写在最后。...break;

注意:

  • 一般每个 case 语句后都会加 break 不要忘记,除非有特殊用途

循环结构

循环结构则允许代码在满足一定条件的情况下重复执行一段代码,例如 for 循环、while 循环和 do-while 循环等。

循环语句

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

注意:do while 循环和 while 循环的区别在于,do while 循环至少会执行一次,而 while 循环则需要满足循环条件才能执行。

for 循环

for 语句是应用最广泛、功能最强的一种循环语句,用于指导固定次数的循环。

for (初始化; 循环条件; 迭代) {语句体
}

提示 初始化、循环条件以及迭代部分都可以为空语句(但分号不能省略),三者均为空的时候,相当于一个无限循环。代码如下:

// 使用 for, 写的无限循环
for (; ;) {...
}// 或者这么搞
while (true) {...
}
for-each 语句

Java 5 之后推出 foreach 循环语句,使用 for-each 循环不必按照 for 的标准套路编写代码,它是专门为集合和数组的遍历而设计的,注意 foreach 并不是一个关键字。

跳转语句

break、continue、return 和 throw 语句是 Java 语言中常用的跳转语句,本节重点介绍 break 和 continue 语句的使用。

break 语句

break 语句:用于跳出循环或 switch 语句。

在循环体中使用 break 语句有两种方式:带有标签和不带标签。语法格式如下:

break;           // 不带标签
break label;     // 带标签,label 是标签名,例如 label: for 循环
continue 语句

continue 语句:用于跳过当前循环的一次迭代,继续下一次迭代。

在循环体中使用 continue 语句有两种方式可以带有标签,也可以不带标签。语法格式如下:

continue;          // 不带标签
continue label;    // 带标签,label 是标签名,例如 label: while 循环

break 添加标签的意义,添加标签对于多层嵌套循环是很有必要的,适当使用可以提高程序的执行效率。但不建议过多使用,否则程序可读性差,而且容易出错。

break 和 continue 关键字比较
  • break 既用在循环语句中,也可用在条件选择语句中的 switch 语句
  • contine 只用在循环语句中,作用是结束本次循环,接着继续进行条件判断

加餐

表达式与语句

表达式:是用于计算值的代码片段。它可以由变量、常量、运算符和其他表达式组合而成。表达式的目的是求值,并返回一个结果。例如:2 + 3x * ya > b 等都是表达式。

语句:是可执行的代码单元,它可以完成特定的操作。语句不一定返回值,它们的主要目的是改变程序的状态或执行其他相关的操作。例如:if 语句、for 循环、print 语句等都是语句。

表达式通常用于计算、赋值、比较等操作,而语句则用于控制程序的流程、执行特定的功能。在 Java 中,表达式可以出现在语句中,作为语句的一部分。

死循环

循环体内部必须通过语句更改循环变量的值,否则将会发生死循环。

// 死循环写法一
for (;;)// 死循环写法二
while (true) {}

参考

  • 丁振凡编著,《Java 语言程序设计(第2版)》华东交大版,2014.9
  • 免费公开课_传智播客和黑马程序员免费公开课 http://yun.itheima.com/open
  • Java 从小白到大牛-图书-图灵社区 http://www.ituring.com.cn/book/2480

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

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

相关文章

JSON 数据(就是字符串)格式的转换

1.JSON 的介绍:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本格式来表示结构化数据。JSON常用于前后端之间的数据传输和存储。 JSON的主要作用有以下几点: 1> 数据交换&a…

环境变量配置

举一个小例子来演示一下环境变量配置。 在CMD中打开QQ界面,首先需要知道QQ.exe文件的完整路径。一旦有了这个路径,可以按照以下步骤操作: 打开CMD窗口。可以通过按下Windows键R,输入“cmd”并回车来打开它。在CMD窗口中&#xf…

【LINUX笔记】驱动开发框架

应用程序调动驱动程序 驱动模块运行模式 模块加载-卸载 加载卸载注册函数 加载 驱动编译完成以后扩展名为.ko,有两种命令可以加载驱动模块: insmod和modprobe 驱动卸载 驱动注册注销 //查看当前已经被使用掉的设备号 cat /proc/devices 实现设备的具…

按键模拟精灵

按键模拟精灵功能简单: 1.添加模拟按键 2.删除模拟按键 3.开始模拟 4.停止模拟 适合简单的按键操作,有需要的可以点赞收藏关注我!

【家用机卖到服务器的笔电】苹果MacBook Pro搭载M3 Max芯片的型号

苹果MacBook Pro搭载M3 Max芯片的型号之所以定价高昂,可以从以下几个方面来解释: 1. **先进技术与性能**: - M3 Max是苹果自家设计的基于ARM架构的高性能处理器,采用了先进的5纳米或更先进制程工艺,提供了极为强大…

docker部署服务无法自动注册xxl-job问题排查和解决

最近部署了一个服务,使用docker部署(network:host模式),2个节点的服务自动注册xxl-job,但是测试环境没有问题,生产环境一直注册失败,虽然可以在项目配置中使用"类似这样的配置"&#…

Axure RP 9 for mac中文版密钥激活版下载

Axure RP 9是一款专业的快速原型设计工具,它可以帮助产品设计师、交互设计师和用户体验设计师等创建高保真度、交互性强的原型,以便在产品开发之前进行测试和用户验证。 软件下载:Axure RP 9 for mac中文版密钥激活版下载 该工具具有丰富的功…

javaSwing俄罗斯方块

目录 1 绪论 1.1程序开发背景及意义 1.2开发技术概述 1.3俄罗斯方块游戏的研究现状 1.3.1 国内外研究现状 1.3.2 文献综述 2相关技术 2.4.1 硬件平台: 2.4.2 软件平台: 3 系统分析 3.1可行性分析 3.1.1经济可行性分析 3.1.2技术可行性分析 3.1.3社会可行…

Linux 文件系统:重定向、缓冲区

目录 一、重定向 1、输出重定向 2、输入重定向 3、追加重定向 4、dup2 系统调用 二、理性理解Linux系统下“一切皆文件” 了解硬件接口 三、缓冲区 1、为什么要有缓冲区? 2、刷新策略 3、缓冲模式改变导致发生写时拷贝 未创建子进程时 创建子进程时 使用fflush…

ubuntu將en01變成eth0的形式

文章目录 前言一、操作步驟1、打開grub文件2、輸入更新指令3、查看結果 二、使用步骤总结 前言 一、操作步驟 1、打開grub文件 使用管理員權限打開,添加新內容 sudo gedit grub2、輸入更新指令 sudo update-grub3、查看結果 使用ifconfig查看是否修改成功&…

安达发|印刷包装APS生产计划排产系统的商业价值

在当今快速消费和竞争激烈的市场环境中,印刷包装行业面临着前所未有的挑战。随着客户需求的多样化、交付期限的缩短以及原材料价格的波动,传统的生产管理方法已无法满足现代印刷包装企业的复杂需求。为了保持竞争力,企业必须采用先进的生产计…

接口测试面试题整理

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码http协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是Http协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

C++进阶02 多态性

听课笔记简单整理,供小伙伴们参考~🥝🥝 第1版:听课的记录代码~🧩🧩 编辑:梅头脑🌸 审核:文心一言 目录 🐳课程来源 🐳前言 🐋运…

JAVA安全(偏基础)

SQL注入 SQLI(SQL Injection), SQL注入是因为程序未能正确对用户的输入进行检查,将用户的输入以拼接的方式带入SQL语句,导致了SQL注入的产生。攻击者可通过SQL注入直接获取数据库信息,造成信息泄漏。 JDBC JDBC有两个方法获取s…

数据挖掘之关联规则

“啤酒和尿布的荣誉” 概念 项 item:单个的事物个体 ,I{i1,i2…im}是所有项的集合,|I|m是项的总数项集(item set)/模式(pattern):项的集合,包含k个项的项集称为k-项集数据集(data set)/数据库…

Linux快速入门,上手开发 02.VMware的安装部署

倘若穷途末路,那便势如破竹 —— 24.3.21 一、VMware的作用 在Windows或IOS系统下,给本地电脑安装VMware虚拟机,用来在虚拟机上安装Linux系统,避免重复资源的浪费,可以在虚拟机上搭建Linux系统进行学习 二、VMware的安…

树莓派夜视摄像头拍摄红外LED灯

NoIR相机是一种特殊类型的红外摄像头,其名称来源于"No Infrared"的缩写。与普通的彩色摄像头不同,NoIR相机具备红外摄影和低光条件下摄影的能力。 一般摄像头能够感知可见光,并用于普通摄影和视频拍摄。而NoIR相机则在设计上去除了…

Python基础----函数(持续更新中)

函数 函数的定义 函数是组织好的,可以重复使用的,用来实现单一的,或相关的代码段 函数:可以自己定义,也可以调用python中的第三方函数,print() 函数非调用不执行 自定义函数 1、函数以关键字 def 开头&…

C语言疑难题:杨辉三角形、辗转相除求最大公约数、求π的近似值、兔子问题、打印菱形

杨辉三角形&#xff1a;打印杨辉三角形的前10行 /* 杨辉三角形&#xff1a;打印杨辉三角形的前10行 */ #include<stdio.h> int main(){ int i,j; int a[10][10]; printf("\n"); for(i0;i<10;i){ a[i][0]1; a[i][i]1; …

PSNR/SSIM/LPIPS图像质量评估三件套(含代码)

在图像质量评估上&#xff0c;有三个重要指标&#xff1a;PSNR&#xff0c;SSIM&#xff0c;LPIPS。本文提供简易脚本分别实现。 PSNR&#xff0c;峰值信噪比&#xff0c;是基于MSE的像素比较低质量评估&#xff0c;一般30dB以上质量就不错&#xff0c;到40dB以上肉眼就很难分…