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); } }
测试结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)