Home  >  Article  >  Java  >  How to generate a random integer within a specified range in Java

How to generate a random integer within a specified range in Java

WBOY
WBOYforward
2023-05-11 09:49:054163browse

1. Use Math.random() to generate a double type [0.0, 1.0) random number (the actual value is [0.0, 0.9999999])

Suppose we want to generate a [ 20, 80] random numbers, 20 can be obtained, and 80 can also be obtained.
Generate a random integer within the range of [min, max]
Formula:
(int)(min Math.random() * (max - min 1))

Test Case: Generate a random integer of [20, 80]

	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);
        }
    }

You can print the test results several times.

How to generate a random integer within a specified range in Java

2. Create a Random class object and call the nextInt() method to generate a random number

Requirements: Generate random numbers from 0 to 10, including 0 and 10

Random random = new Random();
int num = random.nextInt(10); //这样写的话,生成[ 0,9]的随机整数数。

If we want to include 0 and 10, we should write it like this

int num = random.nextInt(10+1);

That is to say, the maximum range number in the brackets is actually unavailable, so we have to put 1 in the brackets .
nextInt() generates random integer regular formula:

Requirement: Generate random integers within the range of [min, max], including min and max

Random random = new Random();
int num = min + random.nextInt( max - min + 1);

Refer to the requirement to generate [0, 10 】The random integer application formula:

//生成【0,10】的随机整数
	Random random = new Random();
	int num = 0 + random.nextInt( 10 - 0 + 1);
//  int num = random.nextInt(11);

Test case code:

  public static void main(String[] args){
        System.out.println("==========Random对象调用方法产生随机数===========");
        int[] arr2 = new int[5];
        Random random = new Random();
        //产生【1-10】的随机数
        for (int i = 0; i < arr2.length; i++) {
            arr2[i] = random.nextInt(10 + 1);
            System.out.print(arr2[i] + "  ");
        }
  }

Randomly print the test data (the results are random, you can run it several times to observe the results)

How to generate a random integer within a specified range in Java

Guess the number game

The system randomly generates a random number [1, 100]. The user inputs a number from the console. The two are compared. If they are not equal, then Prompts the user whether the number he entered is larger or smaller than the random number generated by the system.

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("请输入您猜测的数字[1,100]:");
            userNumber = sc.nextInt();
            if (userNumber == randomNumber) {
                System.out.println("恭喜您猜对了");
                System.out.println("系统生成的随机数:" + randomNumber);
                break;
            } else if (userNumber > randomNumber) {
                System.out.println("您猜的数字偏大");
            } else {
                System.out.println("您猜的数字偏小");
            }
        }
        System.out.println("游戏结束!");
    }
}

The above is the detailed content of How to generate a random integer within a specified range in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete