Java生成指定范圍內(nèi)的一個(gè)隨機(jī)整數(shù)2種方式
1、使用 Math.random()可以生成一個(gè)double類型的 [ 0.0,1.0)的隨機(jī)數(shù)(實(shí)際上的取值是 【0.0,0.9999999】)
假設(shè)我們要生成一個(gè)【20,80】的隨機(jī)數(shù),20可以取到,80也可以取到。
生成【min,max】范圍內(nèi)的隨機(jī)整數(shù)
公式:
(int)( min + Math.random() * ( max - min + 1))
測(cè)試案例:生成一個(gè)【20,80】的隨機(jī)整數(shù)
public static void main(String[] args) {
for (int i = 1; i <= 80; i++) {
int number = (int) (20 + Math.random() * (80 - 20 + 1));
System.out.println(number);
}
}
可以多打印幾次測(cè)試結(jié)果。

2、創(chuàng)建Random類對(duì)象,調(diào)用nextInt()方法生成隨機(jī)數(shù)
需求:生成 0-10的隨機(jī)數(shù),包含0和10
Random random = new Random(); int num = random.nextInt(10); //這樣寫(xiě)的話,生成[ 0,9]的隨機(jī)整數(shù)數(shù)。
如果我們要包含0和10,應(yīng)該這樣寫(xiě)
int num = random.nextInt(10+1);
即是說(shuō)括號(hào)里面的那個(gè)最大范圍數(shù)實(shí)際上是取不到的,所以我們要在括號(hào)里面+1。
nextInt()生成隨機(jī)整數(shù)規(guī)律公式:
需求:生成【min,max】范圍內(nèi)的隨機(jī)整數(shù),包含min和max
Random random = new Random(); int num = min + random.nextInt( max - min + 1);
參照需求生成【0,10】的隨機(jī)整數(shù)套用公式:
//生成【0,10】的隨機(jī)整數(shù) Random random = new Random(); int num = 0 + random.nextInt( 10 - 0 + 1); // int num = random.nextInt(11);
測(cè)試案例代碼:
public static void main(String[] args){
System.out.println("==========Random對(duì)象調(diào)用方法產(chǎn)生隨機(jī)數(shù)===========");
int[] arr2 = new int[5];
Random random = new Random();
//產(chǎn)生【1-10】的隨機(jī)數(shù)
for (int i = 0; i < arr2.length; i++) {
arr2[i] = random.nextInt(10 + 1);
System.out.print(arr2[i] + " ");
}
}
隨機(jī)打印測(cè)試的數(shù)據(jù)(結(jié)果有隨機(jī)性,可以多運(yùn)行幾次觀察結(jié)果)

猜數(shù)字大小的游戲
系統(tǒng)隨機(jī)生成【1,100】一個(gè)隨機(jī)數(shù),用戶從控制臺(tái)輸入一個(gè)數(shù),兩者比較大小,若不相等,就提示用戶,他輸入的數(shù)字比系統(tǒng)生成的隨機(jī)數(shù)大還是小。
import java.util.Scanner;
public class Demo18 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int randomNumber = (int) (1 + Math.random() * (100 - 1 + 1));
int userNumber;
while (true) {
System.out.println("請(qǐng)輸入您猜測(cè)的數(shù)字[1,100]:");
userNumber = sc.nextInt();
if (userNumber == randomNumber) {
System.out.println("恭喜您猜對(duì)了");
System.out.println("系統(tǒng)生成的隨機(jī)數(shù):" + randomNumber);
break;
} else if (userNumber > randomNumber) {
System.out.println("您猜的數(shù)字偏大");
} else {
System.out.println("您猜的數(shù)字偏小");
}
}
System.out.println("游戲結(jié)束!");
}
}
到此這篇關(guān)于Java生成指定范圍內(nèi)的一個(gè)隨機(jī)整數(shù)2種方式的文章就介紹到這了,更多相關(guān)Java生成指定隨機(jī)整數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot2.4.2下使用Redis配置Lettuce的示例
這篇文章主要介紹了SpringBoot2.4.2下使用Redis配置Lettuce,Springboot2.4.2下默認(rèn)使用的就是Lettuce而不是Jedis因此無(wú)需在依賴進(jìn)行排除Jedis,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2022-01-01
Spring Boot集成Sorl搜索客戶端的實(shí)現(xiàn)代碼
本篇文章主要介紹了Spring Boot集成Sorl搜索客戶端的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
springboot啟動(dòng)feign項(xiàng)目報(bào)錯(cuò):Service id not legal hostnam的解決
這篇文章主要介紹了springboot啟動(dòng)feign項(xiàng)目報(bào)錯(cuò):Service id not legal hostnam的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
詳解Java List的擴(kuò)容機(jī)制原理及應(yīng)用
在Java中,List是一種非常常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)有序的元素集合,本文將分析Java List的擴(kuò)容機(jī)制原理,并通過(guò)示例代碼和測(cè)試代碼來(lái)加強(qiáng)闡述內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
基于Java代碼實(shí)現(xiàn)游戲服務(wù)器生成全局唯一ID的方法匯總
我們?cè)谧龇?wù)器系統(tǒng)開(kāi)發(fā)的時(shí)候,為了適應(yīng)數(shù)據(jù)大并發(fā)的請(qǐng)求,需要插入數(shù)據(jù)庫(kù)之前生成一個(gè)全局的唯一id,糾結(jié)全局唯一id怎么生成呢?下面小編給大家分享Java代碼實(shí)現(xiàn)游戲服務(wù)器生成全局唯一ID的方法匯總,涉及到優(yōu)劣勢(shì)方面的知識(shí)點(diǎn),對(duì)此感興趣的朋友一起看看吧2016-10-10
Java的ConcurrentLinkedQueue源碼分析
這篇文章主要介紹了Java的ConcurrentLinkedQueue源碼分析,ConcurrentLinkedQueue 是一個(gè)基于鏈接節(jié)點(diǎn)的無(wú)界線程安全的隊(duì)列,當(dāng)我們添加一個(gè)元素的時(shí)候,它會(huì)添加到隊(duì)列的尾部,當(dāng)我們獲取一個(gè)元素時(shí),它會(huì)返回隊(duì)列頭部的元素,需要的朋友可以參考下2023-12-12

