Java-Day004

主要内容

  • 随机数
    • Math.random()
    • Random类
  • switch选择

一、随机数

一、Math.random()

Math.random()默认产生[0.0-1.0)的随机小数,包含0.0,不包含1.0

所以Math.random()可以产生任意的随机整数,当然,需要强制类型转换,例如随机的0-9

(int)(Math.random()*10)

因为默认产生的是[0.0-1.0)这个区间的小数,所以在它产生的最小的小数是0.0,0.0*10还是0,但是因为不包含1.0,所以最高数只到0.9…,所以,在这个结果上*乘以10并且强转至int类型,得到了[0-9]的随机数。

产生35-50的随机数

System.out.print((int)(Math.random()*(50-35+1)+35)+"\t");

Math.random()的取值范围是[0.0,1.0),要产生最小数是35的随机数,就要在最后加上35,但是如果加上35,那么最大数就会超出范围,所以最大数为最大数减去最小数+1,不加+的话最大数只到最大数-1,所以要在+1

可以得到一个公式

[最小数,最大数] = (int)(Math.random()*(最大数-最小数+1)+最小数)

二、Random类

Random random = new Random();
System.out.println(random.nextInt(7));

创建对象,返回[0,7)区间的随机数

方法描述
nextInt(int bound)返回随机数,取值范围在[0,bound)。
nextInt()返回随机数,从这个随机数发生器的序列中均匀分布 int值。
nextFloat()返回随机数(float类型),取值范围[0.0,1.0)
nextDouble()返回随机数(double类型),取值范围[0.0,1.0)
nextBoolean()返回一个随机boolean类型

返回[1.0,2.0)float类型随机数

System.out.println(random.nextFloat()*1.0+1);

返回[2.0,3.5)double类型随机数

System.out.println(random.nextFloat()*1.5+2.0);

返回boolean类型

System.out.println(random.nextBoolean());

二、switch选择

for (int i = 1; i<=10;i++){
            int day = (int)(Math.random()*(10-1+1))+1;
            System.out.print(day+"——>");
            switch (day){
                case 1:
                    System.out.println("星期一");
                    break;
                case 2:
                    System.out.println("星期二");
                    break;
                case 3:
                    System.out.println("星期三");
                    break;
                case 4:
                    System.out.println("星期四");
                    break;
                case 5:
                    System.out.println("星期五");
                    break;
                case 6:
                    System.out.println("星期六");
                    break;
                case 7:
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("啥也不是");
            }
        }
  • break:跳出switch语句
    • 如果不写,将会出现case穿透,影响结果
  • default:所有都匹配则执行
    • 可以省略,但是不建议,存在可以更好的对不正确的表达式进行提示
    • 可一不写在末尾,但是建议卸载末尾

**要求:**表达式以及case后的值的类型只能为byte short char int String 枚举

switch结束条件:

遇见break结束,或者执行到末尾自然结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值