栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现猜数程序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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);
  }
}

测试结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/129970.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号