if语句
格式:
格式一:
if(表达式){
语句;
}
首先进来看表达式是否成立,如果为true,就执行这个语句
如果是false,就不执行格式二:
if(表达式1){
语句1;
}else{
语句2;
}
首先判断表达式1是否成立,如果是true,则执行语句1;
如果是false,执行语句2格式三:
if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else if(表达式3){
语句3;
}….
}else{
语句n;
}
首先判断表达式1是否成立,如成立,true,执行语句1;
如果是false,再次判断表达式2是否成立,true,执行语句2;
如果是false,再次判断表达式3是否成立,true,执行语句3;
最终上述都不成立,走到else里面
注意事项:
- 如果if语句里面只有一条语句,if(表达式)后面的大括号可以省略
- if语句的表达式不管是简单的还是复杂的,最终是boolean类型
- 在if语句里面,有分号的地方不能有左大括号,有左大括号的地方不能有分号!
三元和if语句:
能使用三元运算符去实现的,肯定能使用if语句;if语句实现的,不一定能够使用三元
三元运算符对具体的结果进行操作,有一个具体的数值,而不是一个语句
switch语句
格式:
switch(表达式){
case 值1:
语句1;
break;
case 值2:
语句2;
break;
….
default:
语句n+1;
break;
}
首先用siwtch后面表达式的值和case后面的值进行比较,如果和值1相等,执行语句1;
如果不相等,跟值2比较,成立,执行语句2,遇见brea;结束
如果上述没有相等的值,执行default中的语句switch后面的数据类型:
本身能跟的类型:int,byte,short,char
JDK5.0以后:可以根据枚举类型
JDK7以后,可以跟String类型switch语句的注意事项:
- default在末尾中的break可以省略
- default可以在该switch语句中的任何位置
- case后面只能跟常量,不能跟变量
- 在swtich语句中:如果中间的case中没有写break,会造成一个现象:case穿透
- switch语句的结束条件:
a:遇见break结束
b:程序默认执行到末尾
- 看程序写结果:
public class SwitchTest {
public static void main(String[] args) {
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
}
}
输出:y=4
public class SwitchTest {
public static void main(String[] args) {
int a = 2;
int b = 3;
switch(a){
default:
b++;
case 3:
b++;
case 4:
b++;
}
System.out.println("b="+b);
}
输出:b=6
分析:
a=2,2进入和3比较,不同,再和4比较,不同,最后执行default;
执行语句b++,因为无break;则程序执行到末尾结束;
执行case 3中的b++,再执行case 4中的b++;
所以b=6;