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
相关产品推荐
相关产品推荐

