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))
測試案例:生成一個(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); } }
可以多打印幾次測試結(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); //這樣寫的話,生成[ 0,9]的隨機(jī)整數(shù)數(shù)。
如果我們要包含0和10,應(yīng)該這樣寫
int num = random.nextInt(10+1);
即是說括號(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);
測試案例代碼:
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ī)打印測試的數(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("請輸入您猜測的數(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+thymeleaf找不到視圖的解決方案
這篇文章主要介紹了springboot+thymeleaf找不到視圖的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java處理InterruptedException異常的理論與實(shí)踐
在使用Java的過程中,有個(gè)情景或許很多人見過,您在編寫一個(gè)測試程序,程序需要暫停一段時(shí)間,于是調(diào)用 Thread.sleep()。但是編譯器或 IDE 報(bào)錯(cuò)說沒有處理檢查到的 InterruptedException。InterruptedException 是什么呢,為什么必須處理它?下面跟著小編一起來看看。2016-08-08Java線程操作的常見方法【線程名稱獲取、設(shè)置、線程啟動(dòng)判斷等】
這篇文章主要介紹了Java線程操作的常見方法,結(jié)合實(shí)例形式總結(jié)分析了java線程的創(chuàng)建、線程名稱的獲取、設(shè)置以及線程啟動(dòng)的判斷等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-10-10Java中JMM與volatile關(guān)鍵字的學(xué)習(xí)
這篇文章主要介紹了通過實(shí)例解析JMM和Volatile關(guān)鍵字的學(xué)習(xí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09Springboot使用Security實(shí)現(xiàn)OAuth2授權(quán)驗(yàn)證完整過程
安全管理是軟件系統(tǒng)必不可少的的功能。根據(jù)經(jīng)典的“墨菲定律”——凡是可能,總會(huì)發(fā)生。如果系統(tǒng)存在安全隱患,最終必然會(huì)出現(xiàn)問題,這篇文章主要介紹了SpringBoot使用Security實(shí)現(xiàn)OAuth2授權(quán)驗(yàn)證完整過程2022-12-12