目录
一、前言
二、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.生成随机数范围
int number=r.nextInt(100)+1;
3.不限次数
- 这里猜数字的次数我们先设置成不限制猜测的次数,无论多少次,只要正确就行。
执行步骤:
- 我们先让随机数生成一个1-100之间的数字,我们进入猜数字循环。
- 输入一个数字,进入三个if的条件判断语句之中,这里我们使用的if结构是我们之前讲解过的第三种:
编码实现:
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<number)
{
System.out.println("你猜的数字"+guessnumber+"小了!");
}
else
{
System.out.println("恭喜你猜对了!,最终结果为"+number);
break;//退出循环
}
}
}
}
输出结果:
请输入你要猜测的数字
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<number)
{
n--;
System.out.print("你猜的数字"+guessnumber+"小了!");
System.out.println("还剩下"+n+"次的机会");
}
else
{
System.out.println("恭喜你猜对了!,最终结果为"+number);
System.out.println("还剩下"+n+"次的机会未使用");
break;//退出循环
}
}
}
}
输出结果:
请输入你要猜测的数字
50
你猜的数字50大了!还剩下4次的机会
请输入你要猜测的数字
25
你猜的数字25大了!还剩下3次的机会
请输入你要猜测的数字
12
你猜的数字12大了!还剩下2次的机会
请输入你要猜测的数字
6
你猜的数字6大了!还剩下1次的机会
请输入你要猜测的数字
3
你猜的数字3大了!还剩下0次的机会
次数达到上限,即将退出!
最终的结果为1
|