摘要:
猜数游戏,随机生成一个0到100之间的整数,从键盘输入数字进行猜数。
下面列举两大类玩法,其中每一类还有两种规则,分别如下示例:
一、第一大类(只能猜5次)
例如:
一共可以猜5次,如果猜小了,在控制台输出猜小了;如果猜大了,在控制台输出猜大了;如果猜对了在控制台输出恭喜您猜对了,并结束游戏。
1、当输入非数字字符时,也算次数。
参考代码1:
package com.gx.demo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
int num = (int) (Math.random() * 100);
System.out.println(num);
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
// 遍历
for (int i = 1; i < 6; i++) {
System.out.println("请输入数字:");// 系统提示输入
int count = 0;// 定义变量,用于接收键盘输入的数字
try {
count = sc.nextInt();
// 判断大小
if (count > num) {
System.out.println("很遗憾,您猜的太大了");
} else if (count < num) {
System.out.println("很遗憾,您猜的太小了");
} else {
System.out.println("恭喜您,猜对了");
break;// 直接跳出
}
} catch (Exception e) {
// e.printStackTrace();
System.out.println("输入有误,只能输入数字");
sc.next();// 继续读取下一个值
}
if (i == 5) {
System.out.println("您的次数用光啦");
}
}
}
}
演示结果:
2、当输入非数字字符时,不算次数。
参考代码2:
package com.gx.demo;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
int num = (int) (Math.random() * 100);
System.out.println(num);
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
int a = 0;
// 遍历
while (true) {
System.out.println("请输入数字:");// 系统提示输入
int count = 0;// 定义变量,用于接收键盘输入的数字
try {
count = sc.nextInt();//如果这里接收到非数字字符,则执行catch里面的代码,不再执行try里面的代码
if (true) {
a += 1;
if (a == 5) {
System.out.println("您已累计猜错5次啦");
break;//跳出循环
}
}
// 判断大小
if (count > num) {
System.out.println("很遗憾,您猜的太大了");
} else if (count < num) {
System.out.println("很遗憾,您猜的太小了");
} else {
System.out.println("恭喜您,猜对了");
break;//跳出循环
}
} catch (Exception e) {
// e.printStackTrace();
System.out.println("输入有误,只能输入数字");
sc.next();// 继续读取下一个值
}
}
}
}
演示结果:
二、第二大类(可以猜无限次)
例如:
一共可以猜无限次,如果猜小了,在控制台输出猜小了;如果猜大了,在控制台输出猜大了;如果猜对了在控制台输出恭喜您经过n次终于猜对了,并结束游戏。
3、当输入非数字字符时,不算次数。(基于2改造)
参考代码3:
package com.gx.demo;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
int num = (int) (Math.random() * 100);
System.out.println(num);
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
int a = 0;
// 遍历
while (true) {
System.out.println("请输入数字:");// 系统提示输入
int count = 1;// 定义变量,用于接收键盘输入的数字
try {
count = sc.nextInt();// 如果这里接收到非数字字符,则执行catch里面的代码,不再执行try里面的代码
a += 1;//记录次数
// 判断大小
if (count > num) {
System.out.println("很遗憾,您猜的太大了");
} else if (count < num) {
System.out.println("很遗憾,您猜的太小了");
} else {
System.out.println("恭喜您经过" + a + "次,终于猜对了");
break;// 跳出循环
}
} catch (Exception e) {
// e.printStackTrace();
System.out.println("输入有误,只能输入数字");
sc.next();// 继续读取下一个值
}
}
}
}
演示结果:
4、当输入非数字字符时,也算次数。(基于3改造)
参考代码4:
package com.gx.demo;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
int num = (int) (Math.random() * 100);
System.out.println(num);
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
int a = 0;
// 遍历
while (true) {
System.out.println("请输入数字:");// 系统提示输入
int count = 1;// 定义变量,用于接收键盘输入的数字
try {
count = sc.nextInt();// 如果这里接收到非数字字符,则执行catch里面的代码,不再执行try里面的代码
a += 1;//记录次数
// 判断大小
if (count > num) {
System.out.println("很遗憾,您猜的太大了");
} else if (count < num) {
System.out.println("很遗憾,您猜的太小了");
} else {
System.out.println("恭喜您经过" + a + "次,终于猜对了");
break;// 跳出循环
}
} catch (Exception e) {
// e.printStackTrace();
System.out.println("输入有误,只能输入数字");
a += 1;//记录次数
sc.next();// 继续读取下一个值
}
}
}
}
演示结果: