java猜数小游戏

在这里插入图片描述

0.效果


1.代码

package number;
import java.math.*;
import java.util.Scanner;
/**
 * 
 * @author 花狗Fdog
 *猜数字游戏
 */
public class GuessNumber {
	public static void main(String[] args) {
		int num = (int)(Math.random()*(10+1)); //强制将double转换为int
		System.out.println(num);
		System.out.println("我们来玩一个猜数游戏吧\n 系统会自动生成一个数,让我们来猜一猜它是几。\n请输入一个20以内的数:");
		Scanner s = new Scanner(System.in);
		//要加入import java.util.Scanner;包
		int snum;
		do{
			snum = s.nextInt();
		}while(getReturnNum(snum,num));
	}
	public static boolean getReturnNum(int snum,int num){
		//如果判断正确就返回 return true 结束循环
		if(snum>=num){ //输入的数大于或者等于被猜数		
			if(snum>num+5){
				System.out.println("你输入的数太大了,继续努力");
				return true;
			}else if(num+5>snum && snum>num){
				System.out.println("你输入的数稍大于被猜数,继续加油");
				return true;
			}else{
				System.out.println("恭喜你,猜对了!");
				return false;
				}
		}
		else{ //输入的数小于被猜数
				if(snum+5<num){
					System.out.println("你输入的数太小了,继续努力");
					return true;
				}else{
					System.out.println("你输入的数稍小于被猜数,继续加油");
					return true;
				}
			}
	}
}

3.注意点

注意点1:
生成随机数random()方法可以生成[0,1)之间的随机浮点数,而double类型数据强制转换为int类型,整数部分赋值给int类型变量,小数点之后的小数部分将会丢失。
默认是[0,10),如何得到[0,10]呢?我们可以利用强制转换来取巧,如果要生成[0,10]的随机整数的话,只需要Math.random()乘以10+1,
然后默认生成[0,11)的浮点数,再强制类型转换为int类型,只取其整数部分,即可得到[0,10]的整数。

注意点2:
int num = (int)(Math.random()*(10+1)); 注意括号 不要写成int num = (int)Math.random()*(10+1)

猜你喜欢

转载自blog.csdn.net/Fdog_/article/details/106195952