if…else语句是流程控制中最基本的语句,其中else是非必需的,下面将分几种使用情况介绍if…else语句。
1.if 语句
可以只使用if关键字来表达一个条件语句,一个if语句包含一个布尔表达式(布尔表达式是由一个或多个布尔值计算而来,结果只有true或false)和一条或多条执行语句。if语句定义格式如下:
如果布尔表达式的值为true,则会执行if语句中的代码块,否则跳过if语句执行if语句块后面的代码。布尔表达式中可以是一个公式,如a!=0,也可以是一个布尔变量。
动手写5.1.1
上面示例中,会先判断number数值是否大于100,如果大于100就会执行if代码块中的println语句,执行结果为:
图5.1.1 if单条件表达式语句
条件表达式可以由多组表达式构成(复合表达式),只要结果返回的是布尔值即可。下面看一个复合表达式的例子。
动手写5.1.2
其执行结果为:
图5.1.2 复合条件语句
if语句后面可以省略大括号“{}”,但是只会执行一条紧跟着的语句。这样的代码可读性差,有可能因为少写了“}”号导致条件语句执行逻辑错误,而且不易被发现,建议编程时遵守Java代码编写规范,为条件语句补全“{}”符号。
动手写5.1.3
上面示例中,最后一条println语句仍然会被执行,执行结果为:
图5.1.3 条件语句省略大括号
2.if…else语句
if语句后面可以跟着else语句,当if语句的布尔表达式值为false时,else语句块内的语句会被执行。if…else语句定义格式如下:
需要注意的是,else语句并不能单独出现,它与if语句必须成对出现。
动手写5.1.4
上面示例中,变量number的值为10,值小于100,条件表达式number > 100判断结果为false,则会执行else语句中的println语句。其运行结果为:
图5.1.4 if…else语句示例
else语句的大括号也可以被省略,而且与if语句一样,被省略后只对紧跟着的第一条执行语句负责。为了便于代码阅读,建议将大括号补齐。
动手写5.1.5
动手写5.1.5与动手写5.1.4的执行结果相同。
if…else语句可以在if…else代码块内多层嵌套使用,这也是在流程控制中最常见的分支控制逻辑。
动手写5.1.6(www.xing528.com)
其执行结果为:
图5.1.5 嵌套if和else语句
if…else条件语句可以转换为三元运算符,表达的逻辑是一样的。
动手写5.1.7
上面代码中,if…else语句和下面的三元运算符是等价的,先判断number的值是否大于100,如果大于100则number减去100;如果小于100,则给number加上100。
3.if…else if语句
在条件语句中else和if可以组合使用,出现在第一个if语句的后面,可以对多种条件进行处理;如果满足该条件就执行该条件下的语句,如果不满足该条件也可以去判断是否满足其他条件,进而去执行其他条件下的语句。if…else if一般定义格式如下:
下面看一个if…else if语句使用示例。
动手写5.1.8
上面示例中,首先判断传入参数number是否小于100,然后判断是否小于200,最后判断是否小于300,由上到下依次对各个布尔表达式进行判断。其执行结果为:
图5.1.6 if…else if语句示例
从上面示例中可以看出,else if语句可以多次被使用。此时多条语句会按照从上到下的顺序依次被判断,直到满足条件时,执行当前满足条件内的语句,其他不满足条件的语句则不会被执行。
else语句也可以和else if语句同时使用,但是只能出现在所有条件语句的最后,表示“如果不满足上面所有条件时则执行该条语句的内容”。此时else语句也只能出现一次。
动手写5.1.9
其运行结果为:
图5.1.7 else if和else语句同时使用
4.if语句嵌套
if语句可以在内部多层嵌套,一个if语句里可以包括多条if语句。if与else一般都是成对出现的。else if语句中也可以嵌套if…else语句。条件语句多重嵌套给分支逻辑判断带来了很大的自由度。
动手写5.1.10
其运行结果为:
图5.1.8 if语句嵌套示例
多层嵌套的if语句会在语义上造成困惑,而且代码维护成本较高,因为每个条件与条件之间的关系较为复杂。良好的代码中不会出现大段难以维护的if语句嵌套。
动手写5.1.11——一个不好的示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。