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