Java实现猜数程序
时间:2021-03-16 10:21:47|栏目:JAVA代码|点击: 次
用Java编写一个猜数程序,供大家参考,具体内容如下
要求如下:
编写一个猜数程序。命令行显示菜单:1.开始;2.退出。用户选择1,则程序生成一个0~99之间的随机整数,命令行显示“请输入你猜的数:”让用户猜。用户输入猜测的数据,猜对了命令行显示“你猜对了”,并且出现菜单:1.再来一次;2.退出。没有猜对程序给出提示(如:太大了,太小了),并要求在命令行继续输入猜测的值;三次没猜对则程序公布正确的数字,并且出现菜单:1.再来一次;2.退出。猜数时任何一个环节,命令行上总会显示用户的总得分情况。得分规则如下:一次猜中得3分,第二次猜中得2分,第三次得1分,三次没有猜中扣2分。主类的名称定为GuessNumber。
上代码
import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static int choice;
public static int point = 0;
//控制choice为0/1,防脸滚键盘
public void judge01()
{
try {
Scanner sc = new Scanner(System.in);
choice = sc.nextInt();
switch (choice)
{
case 1: break;
case 2: System.exit(0);
default:
{
System.out.println("请输入0-1:");
judge01();
}
}
}
catch (InputMismatchException e) //非整数(小数、字符)会被捕获
{
System.out.println("请输入整数(0-1)!");
judge01();
}
}
//计算得分
public int point(int count)
{
if (count == 1)
{
point += 3;
return point;
}
else if (count == 2)
{
point += 2;
return point;
}
else if (count == 3)
{
point += 1;
return point;
}
else
{
point -= 2;
return point;
}
}
//猜数部分
public int start(int num, int count) //返回值为count
{
//try...catch...语句防误输入
try {
Scanner sc = new Scanner(System.in);
int input_number;
System.out.println("请输入你猜的数(0-99):");
input_number = sc.nextInt();
if (input_number < 0 || input_number > 99) //控制输入数字的范围
{
System.out.println("输入的整数范围:[0,99]");
return start(num, count);
}
else
{
if (input_number < num)
{
count++;
if (count == 3) //count为3时结束猜数并公布正确数字
{
System.out.println("三次都没有猜中,游戏结束!");
System.out.println("正确数字:"+num);
count++;
return count;
}
System.out.println("太小了,请重新输入:");
return start(num, count);
}
else if (input_number > num)
{
count++;
if (count == 3)
{
System.out.println("三次都没有猜中,游戏结束!");
System.out.println("正确数字:"+num);
count++;
return count;
}
System.out.println("太大了,请重新输入:");
return start(num, count);
}
else
{
count++;
System.out.println("恭喜你,猜对了!");
return count;
}
}
}
catch (InputMismatchException e)
{
System.out.println("请输入整数!");
start(num, count);
}
return -1;
}
//完整的猜数流程
public void guess(int num)
{
int count = 0;
count = start(num, count);
point = point(count);
System.out.println("当前得分: "+point);
}
public static void main(String[] args) {
System.out.println("1.开始 2.退出");
System.out.println("初始分数:"+point);
GuessNumber begin = new GuessNumber();
begin.judge01();
int num;
num = new Random().nextInt(99); //创建0-99的随机数
System.out.println("生成的随机数(测试):"+num); //展示所创建的随机数,用于测试
begin.guess(num);
do {
System.out.println("1.再来一次 2.退出");
begin.judge01();
num = new Random().nextInt(99);
System.out.println("生成的随机数(测试):"+num); //展示所创建的随机数,用于测试
begin.guess(num);
}while (choice != 2);
}
}
测试结果



阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




