猜数字游戏并不难,但我们需要注意的有两点,一个是随机生成一个数,另一个是向屏幕输入一个数
1.首先是随机生成一个数,这里我们需要用到 “Random”这个类,这个类的实例是用来生成一系列的伪随机数字,并不是无脑的随机生成,而是通过修改使用一些列线性同余公式。
Random()就相当于一个构造器,用来创建一系列随机值
根据要修改数据的类型和功能,可以从该类中找到不同的方法,我们这里举几个例子
修改类型 | 方法及简介 |
---|---|
boolean | nextBoolean():从这个生产器中返回下一个随机的离散分布的Boolean类型的值 |
double | nextDouble():从生产器中返回下一个随机的离散分布的double类型的值,这个值的介于0.0~1.0之间 |
int | nextInt():从生产器中返回下一个随机的离散分布的int类型的值 |
int | nextInt(int bound):从生产器中返回下一个随机离散分布的int类型的值,这个值介于0到规定的值的范围内 |
void | setSeed(long seed):Sets the seed of this random number generator using a single long seed. |
看几个代码
Random rng=new Random();
boolean b=rng.nextBoolean();
double d=rng.nextDouble();
int i=rng.nextInt();
int i2=rng.nextInt(100);
System.out.println(b);
System.out.println(d);
System.out.println(i);
System.out.println(i2);
编译执行后
再次执行后
我们会发现每次执行的效果都不同,即达到了我们想要的随机生成一个数值的效果
猜数字游戏的第二个关键是输入一个值
这里我们需要用到Sanner这个类
具体用法如下:
Scanner in=new Scanner(System.in);
int i=in.nextInt();
double d=in.nextDouble();
boolean b=in.nextBoolean();
System.out.println("输出");
System.out.println(i);
System.out.println(d);
System.out.println(b);
这样两个核心步骤就解决了,猜数字游戏就可以写了
import java.util.Random;
import java.util.Scanner;
/**
* NumberGuess
*/
public class NumberGuess {
public static void main(String[] args) {
Random random=new Random();
int toGuessNum=random.nextInt(100)+1;//生成一个1到100的随机数
while(true){
System.out.println("输入你要猜的数字");
Scanner in=new Scanner(System.in);
int num=in.nextInt();
if(num<toGuessNum){
System.out.println("小了");
}
else if(num >toGuessNum){
System.out.println("大了");
}
else{
System.out.println("找到了");
break;
}
}
}
}