本文主要是介绍第六章: Java 流程控制之必会的if和else分支语句,来看看吧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
今天开始,我们正式进入Java
流程控制的讲解. 在"架构整洁之道"
一书中提到,早在上个世纪五六十年代. Bohm
和Jocopin
就证明了可以用"顺序结构"
,"分支结构"
, "循环结构"
这三种结构造成任何程序.目前几乎所有的程序都采用这三种流程控制.
其实我们开学习,开发过程中, 经常听到的所谓编程思维. 而流程控制在编程思维中占有很基础很重要的地位. 即你如何控制程序的运行.
"顺序结构"
不言而喻就是代码按照从上到下依次执行.那么我们就从分支语句开始讲解.分支语句中最常见的就是if...else
条件分支语句.
接下来我们先认知一下流程控制的不同结构
1. 流程控制
1.1. 简介
在Java
项目中, 都是以英文分号;
作为代码语句的结束符. 多条语句的执行顺序默认按照"顺序结构"
执行. 早在程序最初的纸带打孔时代, 程序就是如此执行的. 但只有这一种控制结构, 程序将无法实现更复杂的场景. 比如需要根据添加判断,执行不同的程序, 或跳转到指定的程序执行, 该如何处理.
后来就出现了goto
语句, 跳转到指定代码行执行代码. 但早期的程序员已经论证过 goto
语句的危害性. 他们也论证了"顺序结构"
与"流程控制结构(分支与循环)"
组合起来就可以实现程序模块的运行最小控制集. 结构化编程也因此到来.
所以我们学习流程控制语句, 更多的是在"分支结构"
,和"循环结构"
上. "顺序结构"
是程序默认执行逻辑.
1.2. 分类
Java
中的流程控制语句, 根据结构化程序设计规范, 整体上分为三大类
- 顺序结构
- 分支结构
- 循环结构
其实这些流程控制逻辑早在我们高中时就已经学习过了, 就是数学中的流程图.你不妨回顾一下.
我们首先来看一下, 不同流程控制结构中, 程序执行的逻辑.
1.3. 顺序结构
顺序结构
可以说是项目中最简单, 最基本的流程控制语句了. 没有什么特殊的语法. 程序按照先后顺序编写即可. 程序默认按照先后顺序执行. 因此程序中大多数代码都是顺序执行.
顺序结构的流程图如下:
示例代码:
// 测试代码:
public class Test {public static void main(String[] args) {//换行输出System.out.println("Hello");System.out.println("World");}
}
运行结果:
如果你此时调换换行语句的顺序, 代码运行结果也将变化.
1.4. 分支结构
所谓的分支结构
, 就是根据条件判断, 有选择的执行代码块中的代码. 在Java
中, 分支结构包括if...else..
语句和switch...case
两种条件分支语句.
我们先看一下分支结构流程图, 理解分支结构的逻辑:
1.5. 循环结构
循环结构
就是在条件满足的情况下, 反复执行特定的代码.在Java
中包括while
, do...while
, for
, foreach
等不同的循环语句
带大家看一下循环结构的流程图:
2. 条件分支之if…else
前面我们也讲到, 条件分支包括两种语法结构. 而本章主要对if...else
语句进行重点分析;
2.1. if 单分支条件判断
if...else
语句最基本的结构就是if 单分支结构
. 在单分支结构中我们将不使用else
分支. 在单分支语句中, 当条件判断为真时, 执行分支代码. 否则就不执行.
其单分支语法格式如下
if(条件表达式){代码块;
}
说明:
- 条件表达式结果必须是一个布尔值,或者本身就是一个布尔类型的变量
- 当条件表达式结果为true 执行代码块中的语句, false 则不执行
单分支语句流程图
示例代码:
// 年龄满18 就可以考驾照了
int age = 18;// 判断年龄是否大于等于18
if(age >= 18){System.out.println("你的年龄已经满足要求,可以考驾照了");
}
2.2. if… else 双分支条件判断
双分支条件判断使用else
, else
表示否则, 即当前面条件不满足的情况下执行else
对应的代码块.
语法格式
if(条件表达式){代码块1;
}else{代码块2
}
说明:
- 根据条件表达式的结果(true 或 false),判断执行
代码块1
或代码块2
- 当条件表达式结果为
true
时执行代码块1
,false
时执行代码块2
具体的流程图如下:
示例代码:
// 年龄满18 就可以考驾照了
int age = 18;// 判断年龄是否大于等于18
if(age >= 18){System.out.println("你的年龄已经满足要求,可以考驾照了");
}else{// 否则: 表示年龄小于18岁System.out.println("你的年龄不满足要求, 不能考驾照");
}
2.3. if… else if… else 多分支条件判断
多分支结构
本质就是通过多个条件行程多条通路. 根据条件进入某一条分支进行执行.
多分支采用else if
, 也就是我们常说的 否则如果
, 表示第一个条件不满足情况下, 进入第二个条件判断. 依次类推形成多条分支结构.
语法格式:
if(条件表达式1){代码块1;
}else if(条件表达式2){代码块2;// ....
}else{代码块3;
}
说明:
- 首先会判断
条件表达式1
, 当判断结果为true
时, 则执行代码块1
, - 当
条件表达式1
的结果为false
时, 则会判断条件表达式2
, 当条件2
为true
时, 执行代码块2
- 当
条件表达式2
的结果为false
时, 则会继续判断后面的条件 - 当所有都有的判断条件都为
false
时, 则会执行else
中的代码块
具体流程图如下:
示例代码:
// 考试成绩
int score = 98;if(score >= 90){System.out.println("成绩优秀!");
}else if(score >= 70){System.out.println("成绩良好!");
}else if(score >= 60){System.out.println("成绩及格!");
}else{System.out.println("成绩不及格及格!");
}
2.4. if…else 嵌套使用
在if...else
语句的代码块中,可以嵌套另外一个if...else
条件分支语句 , 形成嵌套结构
执行的特点:
- 如果是嵌套在
if
代码块中的,只有当外部的if
条件满足,才会去判断内部的条件 - 如果是嵌套在
else
代码块中的,只有当外部的if
条件不满足,进入else
后,才会去判断内部的条件
示例代码:
// 判断三个数字的大小
int num1 = 23,num2 = 32,num3 = 12;if(num1 >= num2){if(num3 >= num1)System.out.println(num2 + "-" + num1 + "-" + num3);else if(num3 <= num2)System.out.println(num3 + "-" + num2 + "-" + num1);elseSystem.out.println(num2 + "-" + num3 + "-" + num1);
}else{ if(num3 >= num2){System.out.println(num1 + "-" + num2 + "-" + num3);}else if(num3 <= num1){System.out.println(num3 + "-" + num1 + "-" + num2);}else{System.out.println(num1 + "-" + num3 + "-" + num2);}
}
2.5. 其他说明:
- 当
代码块
中只有一条执行语句时,一对{}可以省略,但是建议保留 - 当
if-else
结构是“多选一”时,最后的else是可选的,根据需要可以省略
3. 结语
至此, 就把流程控制中第一种条件分支语句(if..else)
给大家讲解完毕了.
到此,你需要能够理解程序的三种, 准确的说是两种流程控制, 即分支结构和循环结构.掌握条件分支结构中if...else
语句的几种使用方式.
这篇关于第六章: Java 流程控制之必会的if和else分支语句,来看看吧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!