08选择结构
小数运算可能遇到问题
System.out.println(3*0.3f);结果为0.90000004
float int 都是32bit
int的氛围能够容纳下2的32次方个数字
float的小数,无穷无尽个数字,因此2的32次方个位置无法容纳全部小数。
深入理解:整数都可以用二进制,小数不行
5=2的零次方+2的2次方
17=2的零次方+2的四次方
0.6 = 2负一次方
选择结构
if
if(布尔条件){
...//如果条件为真,则执行
}
if后面只有一条语句,则{}可省略(但不建议省略),如果有多条语句,则{}不能省略
例子
public static void main(String[] args) {
//小明98分,张三考试成绩比小明高,则奖励一个mp3
int xm = 98 ;
int zs = 99 ;
if(zs >xm){//如果没有{},则if、for、while都只对下面第一条语句生效
System.out.println("奖励");//如果条件为真,则执行
System.out.println("表扬");
}
}
if...else...
if else为对立事件
if(布尔条件){
...//如果条件为真,则执行
}else{
}
例子
// int xm1 = 98 ;
// int zs1 = 70 ;
// if(zs >xm){//如果没有{},则if、for、while都只对下面第一条语句生效
// System.out.println("奖励");//如果条件为真,则执行
// }else{
// System.out.println("惩罚");
// }
//如果zs java成绩大于90且英语成绩大于95则奖励;或者zs java大于95且英语大于80也奖励
// int zsJava = 98 ;
// int zsE = 99;
// if((zsJava>90 && zsE>95) || (zsJava>95 && zsE>80) ){
// System.out.println("奖励");
//
// }
String str = "" ;
int a = 10 ;
int b = 20 ;
if (a>b){
str = "hello" ;
}else{
str = "world" ;
}
System.out.println(str);
//如何简化? 三目运算符 String str = 100>20 ? "hello":"world" ;
//简单的if...else赋予语句,可以等价为三目运算符
随机数
Math.random();//范围[0,1)
double ran = Math.random();
System.out.println(ran);
//产生四位随机数 例如1234,2345
//0-1 *9000(四位数中最大的整千数)-->[0,9000) ->int -->[0,8999] +1000 --> [1000,9999]
System.out.println((int) (Math.random() * 9000) + 1000);
//产生三位随机数
//0-1 *900()三位数中最大的整百数-->[0,900) ->int -->[0,899] +100(最小三位数) --> [100,999]
int ran2 = (int) (Math.random() * 900) + 100 ;
System.out.println();
//六位随机整数
System.out.println((int) (Math.random() * 900000) + 100000);
//n为随机数 : (int) (Math.random() * (最大值+1-最小值)) + n位数的最小值;
//题目:会员卡号必须 是三位;抽奖规则:如果卡号的十位等于随机数,则中奖。
int vip = (int) (Math.random() * 900) + 100 ;
int shiwei = vip/10%10 ;
int ran3 = (int) (Math.random() * 10) ;
if(shiwei == ran3){
System.out.println("恭喜中奖");
}else {
System.out.println("非常遗憾");
}
System.out.println("具体如下:");
System.out.println("卡号:"+vip);
System.out.println("随机数:"+ran3);

浙公网安备 33010602011771号