颜群老师java课程笔记
三、选择结构
1.小数运算 可能会遇到的问题
System.out.println(3*0.3f); 运算结果0.8999999999999999
float\int :32bit
int的范围 能够容纳下 2的32次方 个数字。
float的小数,无穷无尽个数字, 因此 2的32次方个位置 无法容纳全部小数。
深入理解: 二进制
5=2(0)+2(2)
17= 2(0)+ 2(4)
0.6 = 2(-1)
2.选择结构
if(布尔条件)
{
…//如果条件为真 则执行
}
if后如果只有一条语句,则{}可以省略 (但不建议省略)
如果多条语句,则{}不能省略
java语言的 if(表达式) ,表达式必须是boolean类型
if…else…
if(布尔条件)
{
…//如果条件为真 则执行
}else
{
}
随机数:
Math.random(); [0,1)
if()
{
}else
{
}
if(xx) A …else B…是对立事件,非此即彼
多重if:多重选择
if()
{
}else if
{
}else if
{
}else if
{
}else{
}
分析时,可以借助于 数轴。
多重if,编写顺序:严格优秀判断(>/>=,数字越大,越优先判断; </<=数字越小,越优先判断)
嵌套if
if()
{
if()
{
}
}else
{
}
区分:
多重if 和嵌套if :判断是否是同一件事情,如果是 同一件 用多重;否则(不是同一件事情),用嵌套
if/switch选择
int rank = 2;
switch(rank){
case 1:
System.out.println("笔记本电脑");
break ;
case 2:
System.out.println("U盘");
break ;//break:表示整个switch全部结束
case 3:
System.out.println("夏令营");
break ;
default://else...
System.out.println("不奖励...");
break ;
}
switch会用 rank和 所有的case匹配,如果匹配成功,则执行相应case后的语句,直到遇到break结束;
在switch中,如果rank和所有的case都不匹配,则执行default 。
switch后支持的表达式类型:int short byte char String 枚举
90
if(score > 90){ }
case后面的值 必须是常量,case值不能重复
default可省略
swtich只有遇到break和最后} 才结束,否则都不会结束
break一般不建议省略,但个别情况 可以省略。
switch():大月 1 3 5 7 8 10 12
多重if…和switch区别?
如果判断的是 区间值,多重if(switch无法实现) ;如果是离散/单点值,switch
if( xx1)…else if (xx2)