JAVA小程序之猜数字游戏(题目解析)

java经典小程序之——猜数字游戏
这里以1到100为例子
1、通过 Math.random() 方法获取 0.0 ~ 1.0 之间的一个伪随机数。
Math.random()原理如下:
	例如: (int)(Math.random()*100+1 ---Math.random()返回随机生成一个在0.0到1的double数值,然后乘以100就是得到0到100的double数值,	然后	用(int)做类型转换,将Math.random()*100的数值舍弃小数位。
2、重点:通过		  max = num - 1   // 把输入的值-1 赋值给最大数(max)  
					min = num + 1// 把输入的值-1 赋值给最小数(min)
	在结合条件控制	if (num > max || num < min) 使每次输入的值区间缩小,避免不必要的输出
3、例题源码如下
 
    
import java.util.Scanner;
/**
 * java小程序——猜数字游戏
 *蚂蚁 
 *2017/11/30
 * */
public class NumberGames {
	public static void main(String[] args) {
		int answer = (int) (Math.random() * 100) + 1;// 通过方法获取一个0-1000之间的随机数
		Scanner sc = new Scanner(System.in);
		int num = 0;// 初始化0
		int min = 1;// 定义最小值
		int max = 100;// 定义最大值
		do {
			System.out.println("输入" + min + "到" + max + "值");
			num = sc.nextInt();
			if (num > max || num < min) {// 输入的值不能大于1000小于0
				System.out.println("错误输出");
			} else if (num > answer) {// 输入的值如果大于答案(answer)
				System.out.println("答案大了");
				max = num - 1; // 把输入的值-1 赋值给最大数(max)
			} else if (num < answer) {// 输入的值如果小于答案(answer)
				System.out.println("答案小了");
				min = num + 1;// 把输入的值-1 赋值给最大数(max)
			}
		} while (num != answer);// 循环条件:输入的值不等于答案就继续循环
		System.out.println("答案正确,中午加鸡腿");
	}
}

4、输出结果如下

你可能感兴趣的:(JAVA小程序之猜数字游戏(题目解析))