需求:
随机生成一个1-100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏
分析拆分题干:
首先,题目要求我们随机生成一个1-100之间的数字,这就需要我们利用Random生成随机数其次,用户要猜测,那么就要输入数据,就要利用到Scanner来从用户的键盘中引入数据 ,根据用户输入和系统自己生成的随机数进行比较,那就要使用到 if - else 语句来判断 .最后,因为我们不知道用户要猜测多少次 , 所以要利用到死循环来重复
开写:
1. 首先先完成random函数部分
Random r = new Random();
Scanner sc = new Scanner(System.in);
int answer = r.nextInt(100)+1;
int answer = r.nextInt(100);
random函数有两中理解方式
第一种是代表随机数生成范围 [ 0 , number-1]
第二种是代表这个范围的随机数个数,从零开始向后数多少个,因为我们的随机数生成要从1开始,所以我们要在随机数表达式后加上1
2.然后完成用户数据的输入以及和随机数的大小判断
System.out.println("请输入一个数来猜测");
int reply = sc.nextInt(); //用户输入
if(reply<1 || reply>100){
System.out.println("输入错误");
}else{
if(reply>answer){
System.out.println("猜大了");
} else if (reply<answer) {
System.out.println("猜小了");
}else {
System.out.println("猜中了");
break; //猜中时利用break来跳出循环
}
}
3.之后便在2中套上一个while(true)死循环来实现重复输出
while(true){
System.out.println("请输入一个数来猜测");
int reply = sc.nextInt();
if(reply<1 || reply>100){
System.out.println("输入错误");
}else{
if(reply>answer){
System.out.println("猜大了");
} else if (reply<answer) {
System.out.println("猜小了");
}else {
System.out.println("猜中了");
break;
}
}
}
完整代码如下:
import java.util.Random;
import java.util.Scanner;
public class Test11 {
public static void main(String[] args) {
Random r = new Random();
Scanner sc = new Scanner(System.in);
int answer = r.nextInt(100)+1;
while(true){
System.out.println("请输入一个数来猜测");
int reply = sc.nextInt();
if(reply<1 || reply>100){
System.out.println("输入错误");
}else{
if(reply>answer){
System.out.println("猜大了");
} else if (reply<answer) {
System.out.println("猜小了");
}else {
System.out.println("猜中了");
break;
}
}
}
System.out.println("程序结束");
}
}