Java学习笔记-基础day-3-Random随机数api的使用

1、 随机数Random的介绍


1.概念: java.util.Random类就是用来产生随机数字的,也是一种引用类型
2.随机数Random类的使用步骤:
    (1)导包
        格式:
			import 包名.类名;
			import java.util.Random;
		快捷键:
			alt + 回车
        注意:
			a.java.lang包下的东西可以直接使用,不用导包
            b.当前类和要使用的类,处于同一个包中,也不用导包
     (2)创建对象
     	类名 对象名 = new 类名(...);
		创建Random类的对象:
			 Random r = new Random();//其中: ()中什么都不用写
     
	(3)使用  
        Scanner中获取键盘录入的整数: int num = sc.nextInt();
		Random中产生随机整数数字:
			r.nextInt(): 产生一个int范围内(正负21亿)的随机数字
			r.nextInt(int类型整数数字n): 产生一个0到n之间的随机数字(包含0,但是不包含n)
			其中: 圆括号()中的int类型整数数字n表示产生随机数字的上限范围
                  

        思考:
            产生2066178之间(包含66,包含178)的整数数字
3.2 Random类的使用
练习:
	
    产生101100之间(包含1,包含100)的整数数字	
        
public class Demo01 {
    public static void main(String[] args) {
        //创建Random类的对象
        Random r = new Random();

        //产生10个1到100之间(包含1,包含100)的整数数字
        /*
            先产生0到99的随机数字(包含0,包含99) --> r.nextInt(100)
            +1
            结果是1到100的随机数字(包含1,包含100) --> r.nextInt(100) + 1
         */
        for (int i = 0; i < 10; i++) {
            //产生1个1到100之间(包含1,包含100)的整数数字
            int num = r.nextInt(100) + 1;//[0,99]+1
            System.out.println(num);
        }
    }
}
/*
    练习:
        产生10个66到178之间(包含66,包含178)的整数数字
        [66,178] --> [0, 112] + 66 --> [0,113) + 66 --> r.nextInt(113) + 6
 */
public class Demo02 {
    public static void main(String[] args) {
        //创建Random类的对象
        Random r = new Random();
        //产生10个66到178之间(包含66,包含178)的整数数字
        for (int i = 0; i < 10; i++) {
            //产生1个66到178之间(包含66,包含178)的整数数字
            int num = r.nextInt(113)+66;
            System.out.println(num);
        }
        System.out.println("-------------");
        //证明以上方式,是可以产生最小值66和最大值178的
        while (true) {
            //产生1个66到178之间(包含66,包含178)的整数数字
            int num = r.nextInt(113)+66;
            System.out.println(num);
            //设定界限值:66和178是两个界限,一旦出了界限,break结束
            if (num == 66 || num == 178) {
                break;
            }
        }
    }
}

3.3 Random练习-猜数字
需求分析
1.需求:程序生成一个1-100之间(包含1,包含100)的数字,使用程序实现猜出这个数字是多少?
    
2.效果:
	如果猜的数字比随机产生的数字大,提示你猜的数据大了
	如果猜的数字比随机产生的数字小,提示你猜的数据小了
	如果猜的数字与随机产生的数字相等,提示恭喜你猜中了

3.使用的知识点:
    (1)使用产生随机数字的Random(1.导包 2.创建对象 3.使用: nextInt(100)+1)
    (2)使用键盘录入Scanner(1.导包 2.创建对象 3.使用: nextInt())
    (3)使用if语句的第三种格式,比较用户输入的数字和产生的随机数字的大小关系
    (4)无法确定用户猜测的次数,需要使用循环(死循环: while(true))
    (5)用户猜测正确后,需要停止循环,使用break  
4.实现步骤:
	(1)创建产生随机数字的Random类的对象
    (2)产生一个[1,100]之间的随机数字,保存到int变量guessNum中,以供用户猜测
    (3)创建键盘录入Scanner类的对象
    (4)以下步骤(5)-(6)是一个循环过程,因为无法确定猜测的次数,使用while(true)
    (5)获取用户猜测的通过键盘录入的数字,保存到int变量inputNum中
    (6)使用if语句的第三种个,对用户猜测的保存在inputNum中的数字 和 产生的保存在guessNum中的数字进行比较
        a.如果 inputNum 大于 guessNum 提示"你猜的数据大了"
        b.否则,如果 inputNum 小于 guessNum 提示"你猜的数据小了"
        c.否则,如果 inputNum 等于 guessNum 提示"恭喜你猜中了",并使用break结束循环
        
实现代码:
public class GuessNum {
    public static void main(String[] args) {
        //(1)创建产生随机数字的Random类的对象
        Random r = new Random();

        //(2)产生一个[1,100]之间的随机数字,保存到int变量guessNum中
        int guessNum = r.nextInt(100) + 1;

        //(3)创建键盘录入Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //(4)以下步骤(5)-(6)是一个循环过程,因为无法确定用户多少次猜中数字,使用while(true)
        while (true) {
            //(5)获取用户猜测的通过键盘录入的数字,保存到int变量inputNum中
            System.out.println("请输入您猜测的数字(1-100之间的整数):");
            int inputNum = sc.nextInt();

            //(6)使用if语句的第三种个,对用户猜测的保存在inputNum中的数字 和 产生的保存在guessNum中的数字进行比较
            if (inputNum > guessNum) {
                //a.如果 inputNum 大于 guessNum 提示"你猜的数据大了"
                System.out.println("你猜的数据大了");
            } else if (inputNum < guessNum) {
                //b.否则,如果 inputNum 小于 guessNum 提示"你猜的数据小了"
                System.out.println("你猜的数据小了");
            } else {
                //c.否则,如果 inputNum 等于 guessNum 提示"恭喜你猜中了",并使用break结束循环
                //注意: inputNum 等于 guessNum 条件 省略不写
                System.out.println("恭喜你猜中了");
                //使用break结束循环
                break;
            }
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值