if语句的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套,这种结构一般用在较为复杂
的流程控制中。例如,聪聪妈妈对聪聪说:“如果这次考试得100分,则进行奖励(如果星
期天不下雨,就带聪聪去公园,否则给聪聪买辆玩具车);否则,如果得95分以上100分以
下,则没有奖励和处罚;否则星期天在家温习功课”。这句话通过伪代码描述的算法如下:
如果聪聪考试得100分
如果星期天不下雨
带聪聪去公园
否则
给聪聪买辆玩具车
否则
如果得95分以上100分以下
没有奖励和处罚
否则
星期天在家温习功课
上面用伪代码描述的算法可以转换为以下Java代码:
if(聪聪考试得100分){
if(星期天不下雨){
带聪聪去公园
}else{
给聪聪买辆玩具车
}else{
if(得95分以上100分以下){
没有奖励和处罚
}else{
星期天在家温习功课
}
}
实际上,上面代码实现的就是if语句的嵌套,if语句嵌套的形式很多,基本的语法格式如
下:
if(条件表达式1){
if(条件表达式2){
语句序列1 }else{
语句序列2
} }else{
if(条件表达式3){
语句序列3 }else{
语句序列4
} }
条件表达式1、条件表达式2和条件表达式3:必要参数。其值可以由多个表达式组成,
但是其最后结果一定是boolean类型,也就是其结果只能是true或false。 语句序列1:可选参数。一条或多条语句,当条件表达式1和条件表达式2的值均为true
时执行这些语句。
语句序列2:可选参数。一条或多条语句,当条件表达式1的值为true,条件表达式2
的值为false时执行这些语句。
语句序列3:可选参数。一条或多条语句,当表达式1的值为false,表达式3的值为true
时执行这些语句。
语句序列4:可选参数。一条或多条语句,当表达式1的值为false,表达式3的值也为false时执行这些语句。
为了使读者更好的理解if语句的嵌套,下面将以一个具体的实例介绍if语句嵌套的应用。本实例主要实现将指定的字符串截取指定长度,超出的部分用省略号替换,如果不超出,则不添加省略号。具体步骤如下。
(1)选择“开始”/“所有程序”/“附件”/“记事本”命令,打开一个无标题的记事本文档。
(2)在新打开的记事本文档中输入以下完整代码:
public class IfNest {
public static void main(String[] args) {
String parStr="我要用一生去实现心美好的愿望,即使那是一条没有尽头的路,走向远方,又有远方";
String rtnStr="";
if(parStr==null || parStr.equals("")){ //判断字符串是否为空
rtnStr="原字符串为空~";
}else{
if(parStr.length()>27){ //判断字符串的长度是否大于27
rtnStr=parStr.substring(0,27)+"……"; //对字符串进行截取并添加省略号
}else{
rtnStr=parStr;
}
}
System.out.println("原字符串为:"+parStr); //输出原字符串
System.out.println("转换后的字符串为:"+rtnStr); //输出转换后的字符串
}
}
在上面的代码中:
parStr.equals("")用于将变量parStr代表的字符串与空字符串进行比较,如果相匹配,则返回true,否则返回false。equals()方法是String对象的常用方法,该方法的详细介绍请参见7.3.1节。
parStr.length()用于获取parStr代表的字符串的长度。length()方法也是String对象的常用方法,该方法的详细介绍请参见7.3.2节。
parStr.substring(0,27)用于获取parStr代表的字符串的子串,该子字符串的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
为原字符串中索引号从0到27之间的字符。substring ()方法也是String对象的常用方法,该方法的详细介绍请参见7.3.5节。
(3)将该方法保存到C盘根目录下,并将其命名为IfNest.java。
(4)进入到DOS环境,在命令提示符后面,直接输入“cd \”并按下〈Enter〉键,返回到C盘根目录。需要注意的是:如果当前系统盘不是C盘,则可以直接在命令提示符后输入“C:”即可。在当前命令提示符后,直接输入以下代码编译Java文件。
javac IfNest.java
(5)编译成功后,就可以在命令提示符后输入以下命令执行该Java文件了。
java IfNest
实例运行结果如图1所示。
图1 实例运行结果