package com.itheima;
import java.util.Random;
import java.util.Scanner;
/*猜数字小游戏案例
* 1,系统产生一个1-100之间的随机数据,输出这个数字是多少
* 2,键盘录入我们猜的数据
* 3,比较这个两个数据,用if语句实现。
* 大了:提示大了
* 小了:提示小了
* 猜中了:恭喜你,猜中了
* 4,实现多次猜数据,用到循环,但是不知道要猜多少次,怎么办呢
* 用While语句实现
* 5,限定次数,只有7次猜的机会。*/
public class RandomGame02 {
public static void main(String[] args) {
// 先产生一个1-100的数字
Random r = new Random();
int randomNumber = r.nextInt(100) + 1;
// 增加计数器,限定输入次数
int count = 0;
// 开始循环猜测
while (true) {
// 输入猜测的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入您猜的数字");
int guessNumber = sc.nextInt();
count++;
if (guessNumber > randomNumber) {
System.out.println("您输入的数字大了,还剩" + (7 - count) + "次");
} else if (guessNumber < randomNumber) {
System.out.println("您输入的数字小了,还剩" + (7 - count) + "次");
} else if (guessNumber == randomNumber) {
System.out.println("恭喜您猜对了");
break;
}
if (count == 7) {
System.out.println("您的次数已用完,请重新投币!");
// 此处必须要加break,表示这种情况的结束,否则程序还会继续往下运行。
break;
}
}
}
}
这个题目里面有一些值得去完善的细节的部分,虽然我自己写了代码,也改了几次。最后还是运行输出了如图片中的结果。
我对于图片中运行结果的“最后还剩0次”有些不太满意,总觉得如果是这样的话,程序不够人性化。而且看起来很奇怪,和下面的“次数用完请重新投币”冲突。
太傅说可以把标红的地方拆成两部分,一部分提示对错,一部分提示还剩多少次,这样就可以解决这个问题。