Java中的if else分支语句(非常详细,附带实例)
我们编写的程序默认是从上到下一行行地顺序执行的,但有些情况下又需要通过条件判断来控制程序的执行顺序,从而实现程序的选择执行。
在 Java 程序中,实现条件判断的语句有两种,分别是 if 语句和 switch 语句,本节带领大家系统学习 if 语句的用法。
if 语句可以分为 4 种,即 if 语句、if-else 语句、if-else-if 语句以及嵌套 if 语句,下面分别来看 4 种用法。
if 结构的流程图如下图所示:

图 1 if 语句流程图
程序执行到 if 语句处时判断布尔值或布尔表达式,如果它的值为 true 则执行 if 语句所包含的语句块,而如果它的值为 false 则直接跳过语句块往下执行。
先看 if 语句的一个示例:
第二个 if 语句的“a<b”的值为 true,所以程序将输出“单行语句”。注意,第二个 if 语句对应的语句块为单行语句,所以可以省略大括号。
if-else 语句的语法如下:
if-else 语句所表达的意思是,如果小括号里的值为 true 时则执行语句块 1,否则执行语句块 2。
if-else 语句的流程图如下图所示:

图 2 if-else语句流程图
程序执行到 if 语句处时判断布尔值或布尔表达式,如果它的值为 true 则执行语句块 1,而如果它的值为 false 则执行语句块 2。
下面是 if-else 语句的示例:
第二个 if 语句的表达式“a<b”的值为 true,所以程序将输出“单行语句1”。
if-else-if 语句所表达的意思是,如果
我们可以通过下图的流程图来理解 if-else-if 语句:

图 3 if-else-if流程图
如果
下面是 if-else-if 语句的一个示例:
对于更复杂的情形我们还可以用嵌套 if 语句来实现,所谓嵌套就是可以在 if 语句、if-else 语句或 if-else-if 语句中再实现一个 if 语句、if-else 语句或 if-else-if 语句,它们之间可以任意组合。语法类似如下:

图 4 嵌套if语句流程图
刚开始根据布尔表达式 1 的值执行不同的分支,大致步骤如下:
仍以年龄段为例,现在要以 35 岁为分隔点将壮年进一步分为青年和中年,那么可以使用嵌套 if 语句来实现:
在 Java 程序中,实现条件判断的语句有两种,分别是 if 语句和 switch 语句,本节带领大家系统学习 if 语句的用法。
if 语句可以分为 4 种,即 if 语句、if-else 语句、if-else-if 语句以及嵌套 if 语句,下面分别来看 4 种用法。
Java if语句
if 语句是最简单且最常用的一种结构,它的语法如下:if (布尔表达式) { 语句块 } if (布尔表达式) 单行语句if 后的小括号里可以是布尔值或布尔表达式,大括号里是待执行的语句块,所表达的意思是,如果小括号里的值为真则执行大括号里的语句块。如果待执行的语句为单行语句,可以将大括号省略掉。
if 结构的流程图如下图所示:

图 1 if 语句流程图
程序执行到 if 语句处时判断布尔值或布尔表达式,如果它的值为 true 则执行 if 语句所包含的语句块,而如果它的值为 false 则直接跳过语句块往下执行。
先看 if 语句的一个示例:
public class IfStatementTest { public static void main(String[] args) { int a = 1; int b = 2; if (a > b) { System.out.println("语句1"); System.out.println("语句2"); } if (a < b) System.out.println("单行语句"); } }第一个 if 语句的布尔表达式“a>b”的值为 false,所以不执行对应的语句块。
第二个 if 语句的“a<b”的值为 true,所以程序将输出“单行语句”。注意,第二个 if 语句对应的语句块为单行语句,所以可以省略大括号。
Java if-else语句
if 语句只支持定义单个分支的语句块,而如果想要在 true 和 false 两种分支的情况下都定义语句块则要使用 if-else 语句。if-else 语句的语法如下:
If (布尔表达式) { 语句块1 } else { 语句块2 } If (布尔表达式) 单行语句1 else 单行语句2if 小括号里可以是布尔值或布尔表达式,接着的大括号里是小括号里的值为 true 时所执行的语句块,else 的大括号是小括号里的值为 false 时所执行的语句块。对于单行语句同样可以省略大括号。
if-else 语句所表达的意思是,如果小括号里的值为 true 时则执行语句块 1,否则执行语句块 2。
if-else 语句的流程图如下图所示:

图 2 if-else语句流程图
程序执行到 if 语句处时判断布尔值或布尔表达式,如果它的值为 true 则执行语句块 1,而如果它的值为 false 则执行语句块 2。
下面是 if-else 语句的示例:
public class IfStatementTest2 { public static void main(String[] args) { int a = 1; int b = 2; if (a > b) { System.out.println("语句1"); System.out.println("语句2"); } else { System.out.println("语句3"); System.out.println("语句4"); } if (a < b) System.out.println("单行语句1"); else System.out.println("单行语句2"); } }第一个 if 语句的布尔表达式“a>b”的值为 false,所以执行 else 对应的语句块,即输出“语句3”和“语句4”。
第二个 if 语句的表达式“a<b”的值为 true,所以程序将输出“单行语句1”。
Java if-else-if语句
在实际编程中有可能需要处理两个以上的分支,这时就需要使用 if-else-if 语句。它的语法如下:if (布尔表达式1) { 语句块1 } else if (布尔表达式2) { 语句块2 } else { 语句块3 } if (布尔表达式1) 单行语句1 else if (布尔表达式2) 单行语句2 else 单行语句3第一个
if(布尔表达式1)
表示布尔表达式 1
的值为 true 时执行语句块 1
。else if(布尔表达式2)
表示在第一个 if 不成立的情况下布尔表达式 2
的值为 true 时执行语句块 2
,以此类推,可以有若干else if(布尔表达式n)
和语句块 n
,最终以 else 结束。对于单行语句可以省略大括号。if-else-if 语句所表达的意思是,如果
布尔表达式 1
的值为 true 则执行语句块 1
,否则看布尔表达式 2
,如果它的值为 true 则执行语句块 2
。如果前面两个布尔表达式都不满足则继续看布尔表达式 3
,如果它的值为 true 则执行语句块 3
,以此类推,当所有布尔表达式的值都为 false 时,执行 else 中的语句块。按顺序依次判断应该执行哪个分支的语句块。我们可以通过下图的流程图来理解 if-else-if 语句:

图 3 if-else-if流程图
如果
布尔表达式 1
为 true 则执行语句块 1
,否则继续执行下一个条件的判断。如果布尔表达式 2
为 true 则执行语句块 2
,否则继续下一个条件的判断,以此类推,依次判断每一个条件,如果以上所有布尔表达式都为 false 则执行语句块 n+1
。下面是 if-else-if 语句的一个示例:
public class IfStatementTest3 { public static void main(String[] args) { int age = 30; if (age <= 14) { System.out.println("少年"); } else if (age > 14 && age < 65) { System.out.println("壮年"); } else { System.out.println("老年"); } } }该程序的功能是判断年龄段,我们将年龄段分为少年(0~14岁)、壮年(15~64岁)和老年(65岁及以上)。这就是典型的多分支场景,通过 if 先判断“age <= 14”,如果条件为 true 则输出“少年”。否则通过 else if 继续判断“age > 14 && age < 65”,如果条件为 true 则输出“壮年”。最后通过 else 输出“老年”,也就是说以上两个 if 条件都不满足时我们就认为是“老年”。程序最后输出“壮年”。
Java嵌套if语句
经过前面的介绍,我们已经明白 if 语句的作用就是控制分支的,对于各种不同的“如果-否则”场景都可以用 if 语句来实现。对于更复杂的情形我们还可以用嵌套 if 语句来实现,所谓嵌套就是可以在 if 语句、if-else 语句或 if-else-if 语句中再实现一个 if 语句、if-else 语句或 if-else-if 语句,它们之间可以任意组合。语法类似如下:
if (布尔表达式1) { if (布尔表达式1-1) { 语句块1-1 } else { 语句块1-2 } } else if (布尔表达式2) { if (布尔表达式2-1) { 语句块2-1 } else { 语句块2-2 } } else { 语句块3 }可以结合下图的流程图看上面的语法:

图 4 嵌套if语句流程图
刚开始根据布尔表达式 1 的值执行不同的分支,大致步骤如下:
- 当布尔表达式 1 为 true 时,执行到布尔表达式 1-1,根据它的值判断执行语句块 1-1 或语句块 1-2;
- 当布尔表达式 1 为 false 时,执行到布尔表达式 2。
- 当布尔表达式 2 为 true 时,执行到布尔表达式 2-1,根据它的值判断执行语句块 2-1 或语句块 2-2。
- 当布尔表达式 2 为 false 时,执行语句块 3。
仍以年龄段为例,现在要以 35 岁为分隔点将壮年进一步分为青年和中年,那么可以使用嵌套 if 语句来实现:
public class IfStatementTest4 { public static void main(String[] args) { int age = 30; if (age <= 14) { System.out.println("少年"); } else if (age > 14 && age < 65) { if (age < 35) { System.out.println("青年"); } else { System.out.println("中年"); } } else { System.out.println("老年"); } } }可以看到,在“else if (age > 14 && age < 65)”分支中增加了一个 if-else 语句,这样就能实现进一步的年龄分段,程序最后输出“青年”。