Java流程控制
- 因为浮点数的精度无法保证,所以不能用浮点数来做判断
if(x == 0.1){ //不靠谱 }
if(Math.abs(x - 0.1) < 0.0001){ //如此判断x是否等于1
} - 判断两个字符串是否相等
String s1 = "hello";
String s2 = "HELLO".toLowerCase();
if(s1 == s2)判断的是两个变量指向的是否是同一对象
if(s1.equals(s2))判断的是两个字符串变量的内容是否相等
注意:如果s为null,调用s.equals()会报错,保险的做法是:
if (s != null && s.equals("hello"))
或者把非null的对象放在前面:
if("hello".equals(s)) - switch 漏写break将导致程序继续往下执行
switch (option){
case1:
case2: //程序在匹配到case1和case2的时候都会执行下面的代码
...
break;
default:
...
break;
}