Java生成指定范圍內(nèi)的一個隨機整數(shù)2種方式
1、使用 Math.random()可以生成一個double類型的 [ 0.0,1.0)的隨機數(shù)(實際上的取值是 【0.0,0.9999999】)
假設我們要生成一個【20,80】的隨機數(shù),20可以取到,80也可以取到。
生成【min,max】范圍內(nèi)的隨機整數(shù)
公式:
(int)( min + Math.random() * ( max - min + 1))
測試案例:生成一個【20,80】的隨機整數(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);
}
}
可以多打印幾次測試結果。

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

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

