条件选择语句包括if结构和switch结构,其中if结构在平时的应用中相对更加频繁,而switch结构应用范围相对较窄,下面详细介绍if结构与switch结构的特点及使用.
if结构
if结构包括if,if-else以及if-else if-else结构。
if(条件表达式){
若条件表达式结果为true,则执行这里的代码一次
}
if(条件表达式){
若条件表达式结果为true,则执行这里的代码一次
}else{
若条件表达式的结果为false,则执行这里的代码一次
}
if(条件表达式1){
若条件表达式1的结果为true,则执行这里的代码一次
}else if(条件表达式2){
若条件表达式2的结果为true,则执行这里的代码一次
}else{
若条件表达式1/2的结果都为false,则执行这里的代码一次
}
if结构中,小括号中的条件表达式必须为boolean值或结果为boolean类型的表达式。且if结构中,各部分的代码互斥。例如,if-else结构中,if(){}与else{}两部分之中只能有一个执行;而if-else if-else结构中,每个部分都是互斥的。
if(true){
//todo1
}else if(true){
//todo2
}else{
//todo3
}
在上面的例子中,只有todo1是执行的,而todo2与todo3都未执行,这就是
if-else if-else结构中的互斥。
switch结构
switch(变量){ case 变量值1://todo1;break; case 变量值2://todo2;break; ... case 变量值5://todo5;break; default://todo6;break; }
switch后的小括号中的变量类型只限于:byte,short,char,int,String(jdk1.7开始支持),枚举(jdk1.5
开
始支持)。
case后的变量值1,2,3,4,5等必须是小括号中变量的可能值,类型必须相同或
能够自动
转换。
例如,小
括号中的
变量
为
int类型,则case后的变量值可以为byte short char int类型之一。
switch结构的执行规则:①首先根据小括号中给定的变量值,从第一个case开始查找匹配,若匹配上,则
开始执行其后的对应的代码块,此时程序开始找出口break或者},找到则退出结构,否则一直往后执行,在这个过程
中会忽略之后的case与default而直接执行其后对应的代码块;②只有当所有case都没有匹配上是,才会执行default
后对应的代码块;③最后一行的case或default语句的break可以省略。
int week = 3;
switch(week){
default:System.out.println("输入错误");
case 4:System.out.println("周四");
case 7:System.out.println("周日");break;
case 1:System.out.println("周一");
case 3:System.out.println("周三");
case 5:System.out.println("周五");
case 2:System.out.println("周二");break;
case 6:System.out.println("周六");
}
如上代码所示,该代码所输出的结果为:
周三
周五
周二