1.Switch语句中的细节
1)注意事项:
a:default一般放在末尾,也可以放在任何位置,但是只有在和case值不匹配时才会执行.
b:case后面只能跟常量,不能跟变量.
d:在case语句中缺少break会出现case穿透现象.
e:switch语句遇见break结束,或者程序默认执行到末尾结束.
c:switch后面的表达式可以是byte,short,int,char等类型,JDk5以后,可以跟枚举类型,JDK7以后,可以
跟String类型(引用类型).
2) case穿透代码块:
/*
现在使用switch实现:键盘录入月份的值,判断季节
3,4,5 春季
6,7,8 夏季
9,10,11 秋季
12,1,2 冬季
*/
import java.util.Scanner;
class SwitchTest{
public static void main(String[] args){
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个数据:") ;
int month = sc.nextInt() ;
switch(month){
//直接利用case穿透
case 3:
case 4:
case 5:
System.out.println("春季") ;
break ;
case 6:
case 7:
case 8:
System.out.println("夏季") ;
break ;
case 9:
case 10:
case 11:
System.out.println("秋季") ;
break ;
case 12:
case 1:
case 2:
System.out.println("冬季") ;
break ;
default:
System.out.println("不存在该月份!") ;
break ;
}
}
}
2.强制类型转换
1)格式:目标数据类型 变量名=(目标数据类型)(变量值);
如:double a=1.0;
int i=(int)a;
2)注意事项:
a.强制类型转换会损失精度,不要随便使用
b.byte,short,char三种不会相互转换,若参与运算,自动提升为int类型
c.扩展的赋值运算符里面隐藏了强制类型转换
3.算术运算符中++a与a++的区别
1)注意事项:
a++或者++a单独使用时,都是自增1,
若参与运算,++在a前面时,先自增,再参与运算,若++在a后面时,先参与运算,再自增。
2)代码块:
int a = 10;
int b = 10;
int c = 10;
a = b++; //a= 10, b=11 , c = 10 ;
c = --a; // a= 9 , b = 11,c = 9
b = ++a; //a= 10 , b= 10 ,c = 9
a = c--; //a = 9 , b = 10 ,c = 8