You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码格式优化咨询:已修改代码是否符合规范?

Java条形图作业代码格式检查与优化建议

嘿,我来帮你看看这个Java条形图作业的代码格式问题,先对比你修改前后的代码,再给你一些具体的建议和确认:

修改后代码

import java.util.Scanner;
public class BarChart{
    public static void main(String[] args){
        System.out.println("Riley Hall - Assignment 3\n");
        Scanner input = new Scanner(System.in);
        int n1 = 0;
        int n2 = 0;
        int n3 = 0;
        int n4 = 0;
        int n5 = 0;
        int i = 1;
        System.out.println("Enter a number between 1 and 30 ");
        n1 = input.nextInt();
        System.out.println("Enter a number between 1 and 30 ");
        n2= input.nextInt();
        System.out.println("Enter a number between 1 and 30 ");
        n3= input.nextInt();
        System.out.println("Enter a number between 1 and 30 ");
        n4= input.nextInt();
        System.out.println("Enter a number between 1 and 30 ");
        n5= input.nextInt();
        for(i = 1; i <= n1; i++){
            System.out.print("*");
        }
        System.out.println();//new line
        for(i = 1; i <= n2; i++){
            System.out.print("*");
        }
        System.out.println();//new line
        for(i = 1; i <= n3; i++){
            System.out.print("*");
        }
        System.out.println();
        for(i = 1; i <= n4; i++){
            System.out.print("*");
        }
        System.out.println();
        for(i = 1; i <= n5; i++){
            System.out.print("*");}
        }
        System.out.println();
        input.close();
    }
}

修改前代码及老师评语

import java.util.Scanner;
public class BarChart {
    public static void main(String[] args) {
        /* 老师评语:你需要优化代码格式,确保代码对齐正确。大部分代码缩进过度,Main方法内代码应缩进一个制表位,仅在嵌套结构中再次缩进。 */
        System.out.println("Riley Hall - Assignment 3\n");
        Scanner input = new Scanner(System.in);
        //初始化变量
        int n1 = 0;
        int n2 = 0;
        int n3 = 0;
        int n4 = 0;
        int n5 = 0;
        int i = 1;//索引
        System.out.println("Enter a number between 1 and 30 ");//提示用户输入
        /* 老师评语:下一行应与其他代码对齐,不应缩进。 */
        n1 = input.nextInt();//存储用户输入
        System.out.println("Enter a number between 1 and 30 ");//提示用户输入
        n2= input.nextInt();//存储用户输入
        System.out.println("Enter a number between 1 and 30 ");//提示用户输入
        n3= input.nextInt();//存储用户输入
        System.out.println("Enter a number between 1 and 30 ");//提示用户输入
        n4= input.nextInt();//存储用户输入
        System.out.println("Enter a number between 1 and 30 ");//提示用户输入
        n5= input.nextInt();//存储用户输入
        /* 老师评语:正确格式化for循环,代码块应单独成行,不要与内部代码同行。我已修正第一个示例。 */
        for(i = 1; i <= n1; i++)//从1开始循环,计数到用户输入的整数,每次递增1
        {
            System.out.print("*");
        }//根据循环次数打印对应数量的*
        System.out.println();//换行
        for(i = 1; i <= n2; i++)//从1开始循环,计数到用户输入的整数,每次递增1
        {System.out.print("*");}//根据循环次数打印对应数量的*
        System.out.println();//换行
        for(i = 1; i <= n3; i++)//从1开始循环,计数到用户输入的整数,每次递增1
        {System.out.print("*");}//根据循环次数打印对应数量的*
        System.out.println();//换行
        for(i = 1; i <= n4; i++)//从1开始循环,计数到用户输入的整数,每次递增1
        {System.out.print("*");}//根据循环次数打印对应数量的*
        System.out.println();//换行
        for(i = 1; i <= n5; i++)//从1开始循环,计数到用户输入的整数,每次递增1
        {System.out.print("*");}//根据循环次数打印对应数量的*
        System.out.println();//换行
        input.close();//关闭Scanner
    }
}

格式确认与优化建议

  • 缩进与代码块格式:修改后的代码大部分已经符合老师要求的缩进规范了,Main方法内的代码都缩进了一个层级,嵌套的for循环内部语句也正确缩进。不过最后一个for循环有个语法错误:你把闭合大括号写在了System.out.print("*");的后面,导致后面的System.out.println();和input.close();被错误地放在了main方法的外面,这会编译报错,需要调整大括号的位置,让它单独成行,和前面的for循环保持一致格式。
  • 代码简洁性优化:目前重复的输入和打印逻辑可以简化,比如用数组来存储5个数字,然后通过循环来完成输入和打印,这样能减少冗余代码,示例如下:
import java.util.Scanner;
public class BarChart{
    public static void main(String[] args){
        System.out.println("Riley Hall - Assignment 3\n");
        Scanner input = new Scanner(System.in);
        int[] nums = new int[5];
        
        // 循环获取用户输入
        for(int j = 0; j < nums.length; j++){
            System.out.println("Enter a number between 1 and 30 ");
            nums[j] = input.nextInt();
        }
        
        // 循环打印条形图
        for(int num : nums){
            for(int k = 1; k <= num; k++){
                System.out.print("*");
            }
            System.out.println();
        }
        
        input.close();
    }
}
  • 注释规范:可以去掉像//new line这种冗余注释,代码本身的换行操作已经很清晰;保留必要的注释即可,比如类或方法的功能说明,不需要给每一行简单代码加注释。
  • 变量命名:n1、n2这类命名可以更有意义一点,比如用num1或者直接用数组存储,可读性会更好。

总的来说,你修改后的代码在格式上已经接近老师的要求了,主要是修正最后一个for循环的语法错误,再做一些简洁性优化就很完美啦!

内容的提问来源于stack exchange,提问作者Chase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:27:28