猜数字小游戏

来源:互联网 发布:Windows 填写ip地址 编辑:程序博客网 时间:2024/06/10 19:45
猜数字小游戏

知识点:
随机数Random类
if、循环
猜数字小游戏代码实现

猜数字游戏需求
1:生成随机数
2: if语句进行条件判断
  3: for循环结构
 添加新的业务逻辑
随机数Random类
A: Random类
 a: 功能
 生成随机数需要使用到引用类型随机数Random类
b: 使用方式
import导包:所属包java.util. Random
创建实例格式:Random  random = new Random ();
调用方法
  nextInt(int maxValue)产生[0,maxValue)范围的随机数,包含0不包含maxValue
nextDouble()  产生[0,1)范围的随机数
如:
Random  random = new Random ();
int  myNumber = random.nextInt(100);//结果为0-99的一个数
B: 案例代码
/*
引用数据类型:Random随机数
java.util.Random
方法:
nextInt(int maxValue)产生[0,maxValue)范围的随机数
nextDouble()  产生[0,1)范围的随机数

求1-100的随机数:random.nextInt(100)+1
附加题:求m到n的随机数
*/
//导包
import java.util.Random;
public class Demo01Random {
public static void main(String[] args) {
//创建对象
Random random = new Random();
//调用方法
int randomNumber = random.nextInt(100)+1;
System.out.println(randomNumber);
double randomNumber2 = random.nextDouble();
System.out.println(randomNumber2);
}
}

if
A: if条件判断语句
  a: 方式一
  1: 书写格式
if(比较表达式) {
语句体;
}
2:执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
  如果是false,就不执行语句体;
b: 方式二
1: 书写格式
if(比较表达式) {
语句体1;
}else {
语句体2;
}
 2:执行流程:
首先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
  如果是false,就执行语句体2;
c: 方式三
1: 书写格式
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
  2:执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
如果都是false,就执行语句体n+1。
  B: 案例代码
/*
if语句:条件判断语句
格式:满足条件就执行对应的语句
if(条件表达式){
  执行语句;
}else if(条件表达式){
执行语句;
}else {
执行语句;
}
*/
import java.util.Random;
public class Demo02If{
//判断小明的得分情况,如果是90-100分,就打印太棒了
//如果60-89分,就打印还不错
//其他情况,就打印 什么情况?~
public static void main(String[] args) {
//产生随机分数
int score = random.nextInt(101);
System.out.print(score);
//开始条件判断
if(score>=90&&score<=100){
System.out.println("太棒了");
}else if(score>=60&&score<=89){
System.out.println("还不错");
}else {
System.out.println("什么情况?!");
}
}
循环
* A: 循环
* a:  需求:我们需要在用户输错时,让用户再次输入,让用户输入的动作循环执行。这时需要使用到循环语句
* b: 分类
* for循环结构
* while循环结构
* do while循环结构
* c: 循环的重要组成部分
* 循环变量初始化 (初始化表达式)
* 循环出口(布尔表达式)
* 循环增量(步进表达式)
* 循环逻辑内容(循环体)
* B: for循环
* a: 书写格式
for(初始化表达式①;布尔表达式②;步进表达式④){
循环体③
}
* b: 执行顺序
* ①②③④>②③④>②③④… ②不满足为止。
* ①负责完成循环变量初始化
* ②负责判断是否满足循环条件,不满足则跳出循环
* ③具体执行的语句
* ④循环后,循环条件所涉及变量的变化情况
* 举例:
for(int i=0; i<10; i++) {
System.out.println(“我爱Java”+i);
}
//会从0-9输出10次“我爱Java”
* C: 案例代码
/*
循环:
for/while/doWhile
循环满足条件:
初始化表达式
布尔表达式
步进表达式
循环体
for(初始化表达式;布尔表达式;步进表达式){
循环体
}
初始化表达式执行一次
布尔表达式   循环体   步进表达式   循环执行  直到布尔表达式条件不满足
break:直接跳出循环
*/
public class Demo03For {
public static void main(String[] args) {
//使用for循环,循环10次
for(int i=0; i<10; i++){
//每次打印我爱java字符串并且打印当前次数
System.out.println("i love java!"+i);
//使用break关键字,在第六次打印结束后跳出循环
if(i == 5) {
break;
}
}
}
}
###05猜数字小游戏代码实现
* A: 猜数字小游戏
* a: 分析
* 用户给的数可能大于、小于、或等于被猜的数,这样就会出现三种情况,用前面讲的三元运算符可以实现,
但是得用三元运算符的嵌套,比较麻烦!可以用更简单的方式if条件判断,可以有三个以上的条件
* b: 需求分析
* 后台预先生成一个随机数1-100,用户键盘录入猜数字
* 如果猜对了,打印“恭喜您,答对了”
* 如果猜错了
* 猜大了:打印“sorry,您猜大了!”
* 猜小了:打印“sorry,您猜小了!”
直到数字猜到为止
最多只能猜5次,否则提示“sorry,您没有机会了!”
* B: 案例代码
/*
猜数字小游戏
完成猜数字小游戏:
1、产生随机数
后台预先生成一个随机数1-100,用户键盘录入猜数字
2、通过if语句对用户猜的数与随机数进行比较
如果猜对了,打印“恭喜您,答对了”
如果猜错了
猜大了:打印“sorry,您猜大了!”
猜小了:打印“sorry,您猜小了!”
3、通过for循环完成用户猜数的循环
直到数字猜到为止
最多只能猜5次,否则提示“sorry,您没有机会了!”

*/
import java.util.Random;
import java.util.Scanner;
//通过*的方式可以一次导入该包下所有的类,但是不建议使用。建议使用哪个导哪个。
//import java.util.*;
public class GuessNumber{
public static void main(String[] args) {
//1、产生随机数
//后台预先生成一个随机数1-100,用户键盘录入猜数字
//创建随机数对象
Random random = new Random();
//产生一个1-100的随机数
int randomNumber = random.nextInt(100)+1;
//System.out.println("我产生的随机数是:"+randomNumber+"你猜猜是多少?");  作弊专用

//产生控制台录入的Scanner对象
Scanner sc = new Scanner(System.in);
//3、通过for循环完成用户猜数的循环
//通过for循环完成猜数字逻辑
for(int i=1; i<=5; i++){
//提示用户输入要猜的数,用变量接收
System.out.println();
System.out.println("请您输入一个1-100的数:");
int guessNumber = sc.nextInt();
//2、通过if语句对用户猜的数与随机数进行比较
//如果猜对了
if(guessNumber==randomNumber) {
//打印猜对后的提示
System.out.println("恭喜您,猜对了!");
//跳出循环,不用再猜了
break;
}else {//如果猜错了
//如果猜大了
if(guessNumber>randomNumber) {
System.out.println("sorry,您猜大了!");
}else {//如果猜小了
System.out.println("sorry,您猜小了!");
}
}
//如果猜到了最后的第5次仍然没有猜对就跳出循环
if(i==5) {
System.out.println("对不起,点太背,下次再来吧!");
break;
}
//每次猜错后,都提示还有多少次机会
System.out.println("请注意,您还有"+(5-i)+"次机会,请慎重作答!");
}
}
}
1 0
原创粉丝点击