Java100天编程指南---第8天:猜数字小游戏


目录

一、前言

二、Random类

1.导包

2.创建对象

3.生成随机数

4.更改范围

5.演示

三、猜数字

1.需求

2.生成随机数范围

3.不限次数

4.规定次数


一、前言

  • 学习概述:Java编程指南第6天、第7天我们学习了分支、循环结构,今天我们利用前面学过的知识点,加上一个Random类,动手完成一个猜数字案例。
  • 学习目标:利用Random类实现猜数字游戏

二、Random类

  • 作用:获取生成一个随机数

1.导包

//导包的动作必须出现在类的定义上面
import java.util.Random;

2.创建对象

//r是变量名,可以改变,其他的固定格式
Random r=new Random();

3.生成随机数

//获取数据的范围[0,10),包含0,不包含10。扩大范围可以直接更改数字
int number=r.nextInt(10);

4.更改范围

  • 上面生成随机数的范围是[0~10),如果我们要生成数据范围是[66,88]如何实现?
  • 可以转换成:66 - 88 => [0 - 23) + 66
//数据范围
int number=r.nextInt(23)+66;

5.演示

  • 下面简单的通过Random随机输出10个数字,看看是否随机?

编码实现:  

import java.util.Random;//导包
public class Demo 
{
	public static void main(String[] args) 
	{
		Random r=new Random();//创建对象
		int number;
		for(int i=0;i<10;i++)
		{
			number=r.nextInt(10);//获取随机数
			System.out.println(number);
		}
	}
}

输出结果

3 8 5 5 3 8 9 9 8 4 
  • 证明每一次的随机数字都会变化,变化的范围属于0~9之间,不包含10

三、猜数字

1.需求

  • 随机生成一个1-100之间的数据,使用程序实现这个数字是多少?
    • 猜的数字大于真实数字,提示猜的数据过大
    • 猜的数字小于真实数字,提示猜的数据过小
    • 猜的数字与真实的数字相等,提示恭喜猜中,结束循环

2.生成随机数范围

  • 1-100就等价于:[0,100)+1
int number=r.nextInt(100)+1;

3.不限次数

  • 这里猜数字的次数我们先设置成不限制猜测的次数,无论多少次,只要正确就行。

执行步骤:

  • 我们先让随机数生成一个1-100之间的数字,我们进入猜数字循环。
  • 输入一个数字,进入三个if的条件判断语句之中,这里我们使用的if结构是我们之前讲解过的第三种
  • Java100天编程指南---第8天:猜数字小游戏_第1张图片

编码实现

import java.util.Random;//导包随机数
import java.util.Scanner;//输入数据

public class Demo 
{
	public static void main(String[] args) 
	{

		Random r=new Random();//创建对象
		Scanner sc=new Scanner(System.in);
		int number,guessnumber;
		number=r.nextInt(100)+1;//产生1-100的随机数字
		while(true)
		{
			System.out.println("请输入你要猜测的数字");
			guessnumber=sc.nextInt();//输入数据
			if(guessnumber>number)
			{
				System.out.println("你猜的数字"+guessnumber+"大了!");
			}
			else if(guessnumber

输出结果

请输入你要猜测的数字
50
你猜的数字50大了!
请输入你要猜测的数字
25
你猜的数字25大了!
请输入你要猜测的数字
12
你猜的数字12大了!
请输入你要猜测的数字
6
你猜的数字6大了!
请输入你要猜测的数字
3
你猜的数字3小了!
请输入你要猜测的数字
4
你猜的数字4小了!
请输入你要猜测的数字
5
恭喜你猜对了!,最终结果为5

4.规定次数

  • 上面我们实现的猜数字小游戏,是没有限定你猜测的次数的,这次我们来改进一下。只需要定义一个变量,每次猜错的时候-1,如果为0还没有才对,也会直接退出。

编码实现

import java.util.Random;//导包随机数
import java.util.Scanner;//输入数据

public class Demo 
{
	public static void main(String[] args) 
	{
		Random r=new Random();//创建对象
		Scanner sc=new Scanner(System.in);
		int number,guessnumber,n=5;
		number=r.nextInt(100)+1;//产生1-100的随机数字
		while(true)
		{
			if(n==0)//次数上限
			{
				System.out.println("次数达到上限,即将退出!");
				System.out.println("最终的结果为"+number);
				break;
			}
			System.out.println("请输入你要猜测的数字");
			guessnumber=sc.nextInt();//输入数据
			if(guessnumber>number)
			{
				n--;
				System.out.print("你猜的数字"+guessnumber+"大了!");
				System.out.println("还剩下"+n+"次的机会");
			}
			else if(guessnumber

输出结果

请输入你要猜测的数字
50
你猜的数字50大了!还剩下4次的机会
请输入你要猜测的数字
25
你猜的数字25大了!还剩下3次的机会
请输入你要猜测的数字
12
你猜的数字12大了!还剩下2次的机会
请输入你要猜测的数字
6
你猜的数字6大了!还剩下1次的机会
请输入你要猜测的数字
3
你猜的数字3大了!还剩下0次的机会
次数达到上限,即将退出!
最终的结果为1

你可能感兴趣的:(100天!精通Java编程,java,前端,后端,运维,程序员)