我自己用Java写了一个关于猜数字游戏的程序,请问这里有什么可以改进的地方吗?

我自己用Java写了一个关于猜数字游戏的程序,相对来说还算完整,但是因为本人是初学java,知识储备有限,所以相信这个程序一定有什么可以改进优化的地方,想请大家给指出来,发表自己的优化建议,同时也希望自己可以查漏补缺,学习到更多的知识,谢谢大家
import java.util.Random;
import java.util.Scanner;

public class work2 {
    /**
     * 用户猜数字:由用户输入数字范围,进行猜数字
     */
    public static void main(String[] args) {
        guessNumber(10);
    }
    public static void guessNumber(int n) {
        Random random = new Random();
        int ran = random.nextInt(n);
        int ranNext = -1;
        System.out.println(ran);
        Scanner sc = new Scanner(System.in);
        System.out.println("请用户输入一个0-" + n + "之间的数字:\n您一共有5次机会");
        for (int i = 5; i > 0; i--) {
            int num = sc.nextInt();
            if(ranNext >= 0){
                ran = ranNext;
            }
            if (num > n || num < 0) {
                System.out.println("您输入的数字超出范围,请重新输入:");
                num = sc.nextInt();
            } else if (num == ran) {
                System.out.println("恭喜你,猜对了!\n接着下一局请输入yes,输入其他则退出");
                String judge = sc.next();
                if(judge.equals("yes")){
                    i = 6;
                    ranNext = random.nextInt(n);
                    System.out.println(ranNext);
                    System.out.println("请用户输入一个0-" + n + "之间的数字:\n您一共有5次机会");
                }else{
                    break;
                }
            } else if (num != ran) {
                if (i == 1){
                    System.out.println("对不起,你的机会用完了,再玩一次请输入yes,输入其他则退出");
                    String judge = sc.next();
                    if(judge.equals("yes")){
                        i = 6;
                        ranNext = random.nextInt(n);
                        System.out.println(ranNext);
                        System.out.println("请用户输入一个0-" + n + "之间的数字:\n您一共有5次机会");
                    }else{
                        break;
                    }
                }else {

                    System.out.println("对不起,你猜错了!还剩" + (i - 1) +"次机会");
                }
            }
        }
    }
}

这个是在你代码的基础上修改的版本,主要是添加了level级别可以增加下难度,其次是采用递归调用。另外类命名要规范一些,再必要地方加些代码注释。希望对你有帮助。

package com.test;

import java.util.Random;
import java.util.Scanner;

/**
 * 类的命名要规范起名的,首字母大写,名字有含义
 */
public class GuessNumGame {
    /**
     * 游戏级别
     */
    private static int level =1;
    /**

     * 用户猜数字:由用户输入数字范围,进行猜数字

     */

    public static void main(String[] args) {

        guessNumber(10);

    }

    /**
     * 猜数字
     * @param end 0-end 猜数的范围
     */
    public static void guessNumber(int end) {

        Random random = new Random();

        int ran = random.nextInt(end);

        int ranNext = -1;

        System.out.println(ran);

        Scanner sc = new Scanner(System.in);

        System.out.println("请用户输入一个0-" + end + "之间的数字:\n您一共有5次机会,当前级别"+level+"级");

        for (int i = 5; i > 0; i--) {

            int num = sc.nextInt();

            if(ranNext >= 0){

                ran = ranNext;

            }

            if (num > end || num < 0) {

                System.out.println("您输入的数字超出范围,请重新输入:");

                num = sc.nextInt();

            } else if (num == ran) {

                System.out.println("恭喜你,猜对了!\n接着下一局请输入yes,输入其他则退出");

                String judge = sc.next();

                if(judge.equals("yes")){
                    //进入下局升级提升难度
                     level++;
                   //如果不考虑性能,可以采用递归调用方式优化代码
                    guessNumber(end*level);
                    //此处break为了采用递归的方式时及时从方法栈中退出,
                    break;
                }else{

                    break;

                }

            } else if (num != ran) {

                if (i == 1){

                    System.out.println("对不起,你的机会用完了,再玩一次请输入yes,输入其他则退出");

                    String judge = sc.next();

                    if(judge.equals("yes")){

                       //重新开始级别复位成1级
                        level=1;
                        guessNumber(10);
                        //此处break为了采用递归的方式时及时从方法栈中退出,
                        break;
                    }else{
                        break;

                    }

                }else {
                    System.out.println("对不起,你猜错了!还剩" + (i - 1) +"次机会");

                }

            }

        }

    }
}


初学的话建议在写代码的时候注意规范,你可以下载一个阿里的代码规约插件检查一下代码规范(IDEA开发工具里面可以搜索下载到)
附上扫描结果:

img

猜数逻辑和响应逻辑可以拆分两个函数