Home > Java > javaTutorial > body text

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

WBOY
Release: 2023-05-11 09:49:05
forward
4211 people have browsed it

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);
        }
    }
Copy after login

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]的随机整数数。
Copy after login

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

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

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);
Copy after login

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);
Copy after login

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] + "  ");
        }
  }
Copy after login

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("游戏结束!");
    }
}
Copy after login

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!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template