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);

posted @ 2023-04-10 20:06  tin88eaby  阅读(17)  评论(0)    收藏  举报