Java基础知识强化81:Math类random()方法之获取任意范围的随机数案例(面试题)

1. 需求:设计一个方法,可以实现获取任意范围内的随机数

分析:使用方法random()如下:

1     public static double random()
2 注:Returns a pseudo-random number between 0.0 (inclusive) and 1.0 (exclusive).       // 0.0 <= x <1.0

(1)键盘录入两个数。

1    int start;
2    int  end;

(2)想办法获取在start到end之间的随机数

(3)输出这个随机数

2. 代码实现:

 1 package cn.itcast_02;
 2 
 3 import java.util.Scanner;
 4 
 5 /*
 6  * 需求:请设计一个方法,可以实现获取任意范围内的随机数。
 7  * 
 8  * 分析:
 9  *         A:键盘录入两个数据。
10  *             int strat;
11  *             int end;
12  *         B:想办法获取在start到end之间的随机数
13  *             我写一个功能实现这个效果,得到一个随机数。(int)
14  *         C:输出这个随机数
15  */
16 public class MathDemo {
17     public static void main(String[] args) {
18         Scanner sc = new Scanner(System.in);
19         System.out.println("请输入开始数:");
20         int start = sc.nextInt();
21         System.out.println("请输入结束数:");
22         int end = sc.nextInt();
23 
24         for (int x = 0; x < 100; x++) {
25             // 调用功能
26             int num = getRandom(start, end);
27             // 输出结果
28             System.out.println(num);
29         }
30     }
31 
32     /*
33      * 写一个功能 两个明确: 返回值类型:int 参数列表:int start,int end
34      */
35     public static int getRandom(int start, int end) {
36      // 回想我们讲过的1-100之间的随机数
37      // int number = (int) (Math.random() * 100) + 1;//(int)( Math.random()*100 )-- 0 <= x <100,那么(Math.random()*100+1)-- 1<=x<101 
38      // int number = (int) (Math.random() * end) + start;
39         // 发现有问题了,怎么办呢?
40         int number = (int) (Math.random() * (end - start + 1)) + start;// start <=  x  <= end
41         return number;
42     }
43 }

运行效果如下:

原文地址:https://www.cnblogs.com/hebao0514/p/4837630.html