本章是关于Java流程控制语句的最全汇总,本篇为汇总上篇。 流程是人们生活中不可或缺的一部分,它表示人们每天都在按照一定的流程做事。 比如出门搭车、上班、下班、搭车回家。
本章是关于Java流程控制语句的最全汇总,本篇为汇总上篇。 流程是人们生活中不可或缺的一部分,它表示人们每天都在按照一定的流程做事。 比如出门搭车、上班、下班、搭车回家。这其中的步骤是有顺序的。 程序设计也需要有流程控制语句来完成用户的要求,根据用户的输入决定程序要进入什么流程,即“做什么”以及“怎么做”等。 从结构化程序设计角度出发,程序有 3 种结构:顺序结构、选择结构和循环结构。 若是在程序中没有给出特别的执行目标,系统则默认自上而下一行一行地执行该程序,这类程序的结构就称为顺序结构。 到目前为止,我们所编写的程序都属于顺序结构。 但是事物的发展往往不会遵循早就设想好的轨迹进行,因此,所设计的程序还需要能够具有在不同的条件下处理不同问题以及当需要进行一些相同的重复操作时,如何能省时省力地解决问题的能力。 在本章中,我们将对 Java 程序中的上述3种流程结构进行学习。 初学者应该对本章的每个小节进行仔细阅读、思考,这样才能达到事半功倍的效果。 Java语句:Java空语句、复合语句和表达式语句按照语句的组成部分,可以将顺序结构中的语句分为表达式语句、空语句和复合语句 3 大类。 下面首先介绍 Java 中语句的编写方式,然后对这 3 类语句进行详细介绍。 语句编写方式在 Java 中,语句是最小的组成单位,每个语句必须使用分号作为结束符。 除此之外,Java 对语句无任何其他限制,开发人员可以很随意地用符合自己风格的方式编写语句。 例如,可以将一个语句放在多行中,示例如下:
由于 Java 使用分号作为语句的结束符,所以上面的 3 行代码会被 Java 认为是一条语句,因为这 3 行中只有一个分号。 但是,我们不推荐使用这种方式来编写语句。 同样,因为使用分号作为分隔符,将多个语句放在一行来编写也是允许的。 例如,下面的示例代码也是正确的。
上面将 5 个语句放在一行中。 为了使程序语句排列得更加美观、容易阅读和排除错误,一般使用如下规则格式化源代码。 在一行内只写一个语句,并采用空格、空行来保证语句容易阅读。 在每个复合语句内使用 Tab 键向右缩进。大括号总是放在单独的一行,便于检查是否匹配。 空语句所谓空语句(Empty Statement),它在程序中什么都不做,也不包含具有实际性的语句。 在程序中,空语句主要用来作为空循环体。 空语句的语法格式如下:
执行一个空语句就是将控制转到该语句的结束点。 这样,如果空语句是可到达的,则空语句的结束点也是可到达的。 表达式语句在很多的高级语言中,有专门的赋值语句。 而在 Java 中将赋值作为一个运算符,因此只有赋值表达式。 在赋值表达式后面添加分号就成了独立的语句。 以下是一些表达式的示例语句:
这些表达式能够被 Java 编译器识别,但是由于没有对程序进行任何操作,因此无任何意义。 一般表达式语句应该能完成一个操作,如修改变量的值或者作为函数参数等。 具体方法是,在表达式的左侧指定一个变量来存储表达式的值,或者将表达式传递给函数。 以下是修改后的表达式语句:
复合语句复合语句又称为语句块,是很多个语句的组合,从而可以将多个语句看作单个语句。 复合语句的语法格式如下:
可以看到由一个扩在大括号内的可选 statement-list 组成。 statement-list 是由一个或者多个语句组成的列表,如果不存在 statement-list,则称该语句块是空的。 它的执行规则如下:
例 1创建一个语句块,该语句块包含 3 条语句。
上述代码执行后,sum 变量的值为 900。 上述的语句块中大括号内包含了 3 条语句。 第一条语句为 width 变量赋值,第二条语句为 height 变量赋值,第三条语句则将 width 和 height 相乘,结果保存在 sum 变量中。 Java if else分支结构精讲Java 支持两种选择语句:if 语句和 switch 语句。 其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制,而 switch 语句则用于对多个整型值进行匹配,从而实现分支控制。 这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。 如果你没有 C/C++ 的编程背景,你将会为这两个语句的强大功能和灵活性而感到吃惊。 选择结构(也叫分支结构)解决了顺序结构不能判断的缺点,可以根据一个条件判断执行哪些语句块。 选择结构适合于带有逻辑或关系比较等条件判断的计算。 例如,判断是否到下班时间,判断两个数的大小等。 if 结构if 语句是使用最多的条件分支结构,它属于选择语句,也可以称为条件语句。 if 选择结构是根据条件判断之后再做处理的一种语法结构。 默认情况下,if 语句控制着下方紧跟的一条语句的执行。不过,通过语句块,if 语句可以控制多个语句。 if 语句的最简语法格式如下,表示“如果满足某种条件,就进行某种处理”。
其中“条件表达式”和“语句块”是比较重要的两个地方。
if 条件语句的运行流程如图 1 所示。 图1 if 语句执行流程图 例 1编写一个 Java 程序,允许用户从键盘输入一个数字,再判断该数是否大于 100。使用 if 语句的实现代码如下:
运行该程序,分别使用键盘输入 99、100 和 105,结果如下所示:
例 2假设有 num1 和 num2 两个变量,它们的值分别是 50 和 34。 下面编写程序,要求使用 if 语句判断 num1 和 num2 的大小关系,并输出比较结果。 实现代码如下:
该段选择语句判断了 num1 值和 num2 值的大于、等于和小于关系。此处 num1 为 50,num2 为 34,所以执行后会输出“num1 大于 num2”。 例 3在上述两个案例代码中,由于每个 if 语句的语句块中只包含一条语句,所以省略了大括号。 本实例在登录系统中要求用户名、密码和验证码都必须正确,否则将显示登录失败及错误提示。 其中的语句块有多条语句,所以需要使用大括号。代码如下:
在这里为 if 语句设置了一个复杂的复合表达式来验证登录条件。执行后的输出结果如下:
if-else 结构单 if 语句仅能在满足条件时使用,而无法执行任何其他操作(停止)。 而结合 else 语句的 if 可以定义两个操作,此时的 if…else 语句表示“如果条件正确则执行一个操作,否则执行另一个操作”。 使用 if…else 语句的语法格式如下所示:
在上述语法格式中,如果 if 关键字后面的表达式成立,那么就执行语句块 1,否则的话则执行语句块 2,其运行流程如图 2 所示。 图2 if…else 运行流程 例 4在例 3 中为实现比较 num1 和 num2 的大小,使用了 3 个 if 条件语句分别判断大于、等于和小于的情况。 下面使用 if…else 双条件来实现,具体代码如下:
双条件语句减少了代码的编写量,同时增强了程序的可读性。 简化后的结果还是一样,执行后会输出“num1 大于 num2”。 多条件 if-else-if 语句if 语句的主要功能是给程序提供一个分支。 然而,有时候程序中仅仅多一个分支是远远不够的,甚至有时候程序的分支会很复杂,这就需要使用多分支的 if…else if 语句。 通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件才执行另一种处理……,这些条件都不满足则执行最后一种条件”。 if…else if 多分支语句的语法格式如下所示:
可以看出,else-if 结构实际上是 if-else 结构的多层嵌套。 明显的特点就是在多个分支中只执行一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中。 在使用 if…else if 语句时,依次判断表达式的值,当某个分支的条件表达式的值为 true 时,则执行该分支对应的语句块,然后跳到整个 if 语句之外继续执行程序。 如果所有的表达式均为 false,则执行语句块 n+1,然后继续执行后续程序,其运行流程如图 3 所示。 图3 if…else if 语句的执行流程 例 5同样以比较 num1 和 num2 的大小为例,使用 if…else if 多条件的实现代码如下:
如上述代码所示,num1 和 num2 不满足 if 语句的“num1==num2”条件,接着测试 else if 的“num1>num2”条件,满足该条件并输出“num1 大于 num2”。 例 6假设某学校对成绩的判断标准是:不低于 90,可以评为优秀;低于 90 但不低于 80,可以评为良好;低于 80 但不低于 60,可以评为中等;否则评为差。
当考试成绩为 90 分以上时,则执行第一个 if 语句,下面的 3 个条件判断语句不会执行;当考试成绩为 80 分以上 90 分以下时,则执行第一个 else if 语句;当考试成绩在 60~80 分,并且包含 60 分的成绩,则执行第二个 else if 语句;如果上述 3 个条件都不满足,则执行 else 语句。 程序运行后的输出效果如下所示:
嵌套 if 的使用if 语句的用法非常灵活,不仅可以单独使用,还可以在 if 语句里嵌套另一个 if 语句。 同样,if…else 语句和 if…else if 语句中也可以嵌套另一个 if 结构的语句,以完成更深层次的判断。 嵌套 if 的语法格式如下:
在上述格式中,应该注意每一条 else 与离它最近且没有其他 else 对应的 if 相搭配,其执行流程如图 4 所示。 图4 嵌套 if 语句执行流程 例 7活动计划安排,如果今天是工作日,去上班;如果今天是周末,则出去游玩;同时,如果周末天气晴朗,去室外游乐场游玩,否则去室内游乐场游玩。实现代码如下:
如上述代码所示,today 满足 if 语句的“today.equals(“周末”)”条件,接着测试 weather 是否满足“weather.equals(“晴朗”)”条件,满足该条件输出“去室外游乐场游玩”。 |
2021-06-05
2021-05-27
2021-05-26
2021-06-05
2021-05-16