java:指定范围内随机数的产生(2)

在之前给大家分享过在Java中使用math.random()产生随机数的方法,今天给大家分享一下使用Random随机数类来产生随机数。使用这个方法之前需要先导入Random所在的包,然后创建一个对象,调用Random类中的功能产生随机数。
代码:

import java.util.Random;

public class RandomDemo {
    
    
	public static void main(String[] args) {
    
    
		Random ran = new Random();
		
		int num = ran.nextInt(50);
		double num1 = ran.nextDouble();
		System.out.println(num + " " + num1);
	}
}

在这里插入图片描述
运行上面的代码,我们发现,程序产生了一个随机整数和一个浮点型的随机数,而这个随机整数的范围是被限定在【0,50)的,也就是int num = ran.nextInt(50)这条语句限定了我们随机数的取值范围,加入我们想产生一个【0,100)的随机数,只要把对应的数字换成100即可。需要注意的是,这里产生的浮点型的随机数的范围是不可以被指定的,如果我们在double num1 = ran.nextDouble()中加上一个数字,那么程序编译将会不通过。
介绍完两种产生随机数的方法,这次我们就用这两种方法写一个猜数字的小游戏来结尾吧:
代码一:

package demo1;

import java.util.Random;
import java.util.Scanner;

public class gussNum {
    
    
	public static void main(String[] args) {
    
    
		System.out.println("游戏开始!");
		System.out.println("请输入一个1-100之间的数字!");
		
		Random ran = new Random();
		int num = ran.nextInt(100) + 1;
		
		Scanner input = new Scanner(System.in);
		
		while(true) {
    
    
			int GussNum = input.nextInt();
			if(GussNum > num) {
    
    
				System.out.println("猜大了!");
			}else if(GussNum < num) {
    
    
				System.out.println("猜小了!");
			}else {
    
    
				System.out.println("恭喜你,猜对了!");
				break;
			}
		}
		
	}

}


代码2:

import java.util.Scanner;

//猜数游戏,生成一个【0,100)之间的随机数,提示用户输入猜测的数字;
public class Guessnum{
    
    
	public static void main(String[] args){
    
    
		Scanner input = new Scanner(System.in);
		int count = 0;
		int random = (int)(Math.random()*100);//生成一个【0,100)的随机数
		while(true){
    
    
			System.out.print("请输入你猜测的数字:");
			int guess = input.nextInt();
			count++;
			if(guess == random){
    
    
				System.out.println("恭喜你!猜对了,你可真是个小天才呢!");
				System.out.print("游戏结束");
				break;
			}else if(guess > random){
    
    
				System.out.print("呀,你猜的数字有点大了!\n");
			}else{
    
    
				System.out.print("你猜小了!\n");
			}
		}
		System.out.print("你一共猜了" + count +"次");
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43825377/article/details/106344772