Formatting 我是否应该对代码的格式进行任何更改?

Formatting 我是否应该对代码的格式进行任何更改?,formatting,Formatting,我的老师告诉我,我需要正确使用代码块来进行格式化。我已经编辑了代码,想知道是否有人有改进的想法,或者我的代码看起来是否正常。我只是不确定格式是否正确。我没有因此而失去多少分数,但如果有改进的余地,我将不胜感激 import java.util.Scanner; public class BarChart{ public static void main(String[] args){ System.out.println("Riley Hall - Assignment 3\n");

我的老师告诉我,我需要正确使用代码块来进行格式化。我已经编辑了代码,想知道是否有人有改进的想法,或者我的代码看起来是否正常。我只是不确定格式是否正确。我没有因此而失去多少分数,但如果有改进的余地,我将不胜感激

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;
公共类条形图{
公共静态void main(字符串[]args){
System.out.println(“Riley Hall-作业3\n”);
扫描仪输入=新扫描仪(System.in);
int n1=0;
int n2=0;
int n3=0;
int n4=0;
int n5=0;
int i=1;
System.out.println(“输入一个介于1和30之间的数字”);
n1=input.nextInt();
System.out.println(“输入一个介于1和30之间的数字”);
n2=输入.nextInt();
System.out.println(“输入一个介于1和30之间的数字”);
n3=输入.nextInt();
System.out.println(“输入一个介于1和30之间的数字”);
n4=输入.nextInt();
System.out.println(“输入一个介于1和30之间的数字”);
n5=输入.nextInt();

对于(i=1;i关于格式化代码,需要注意的一点是,大多数时候,代码的格式不会影响它的运行方式。(在某些情况下,您可以在一行上编写大部分代码,但它仍然可以工作)

格式化是设计用来让开发人员更容易调试、更改或添加代码的事情之一。记住这一点,每个人都可以用他们认为适合自己的任何方式格式化他们的代码。你不应该失去一段代码的标记

下面是一些著名的格式化代码的实践:

等级制的 将其视为层次结构。如果将对象放置在类中,或将函数放置在函数中,则可以对其进行格式化以表示该层次结构。 例如:

import java.util.Scanner;
public class BarChart{ 
public static void main(String[] args){
将成为:

import java.util.Scanner;
public class BarChart{ 
   public static void main(String[] args){
查看这如何表示
公共静态void main(String[]args){
公共类条形图中{
?这使得直观地查看它变得容易多了。使用括号表示函数的闭包,并将其缩进到与声明相同的级别。当然,这引发了关于是否使用
选项卡
空格
缩进代码的永无休止的争论,但实际上-这并不重要。这是你的选择

间距 我曾经在某个地方读到,如果您认为注释最适合于两行代码之间,请留下一个空白。这尤其适用于两个不同的函数或类似函数之间(看起来您已经这样做了)

评论 啊,评论。这让我不用花几个小时去记为什么我写了这样的东西,或者为什么有些东西不起作用。总是试着评论你的代码。这是一次你可以将所有的计算机语言转换成人类可读的语言,这将帮助你更好地理解你的代码。如果你需要传递代码,新开发的洛珀将能够更好地理解它。如果一年后你需要修复某个东西,你将能够回忆起它是如何工作的,以及可能需要更改的内容。评论,评论,评论

这些只是我最喜欢的一些实践,有些你也应该适应。这些绝对不是专业的实践,它们只是编码的基础。为了回答你最初的问题,你的代码结构非常好,但试着专注于缩进和注释


(注意:如果您谈论的是代码的结构而不是格式,那么您应该注意不要重复函数。这会使您的代码看起来笨重)。

它们可能是为了让您在需要重复某些模式时使用循环。您的主函数可以这样重写:

  public static void main(String[] args) {
    System.out.println("Riley Hall - Assignment 3\n");
    Scanner input = new Scanner(System.in);

    int[] n = new int[5];
    int i, j;

    for (i = 0; i < 5; i++) {
      System.out.println("Enter a number between 1 and 30 ");
      n[i] = input.nextInt();
    }

    for (i = 0; i < 5; i++) {
      for (j = 0; j < n[i]; j++) {
        System.out.print("*");
      }
      System.out.println();
    }

    input.close();
  }
publicstaticvoidmain(字符串[]args){
System.out.println(“Riley Hall-作业3\n”);
扫描仪输入=新扫描仪(System.in);
int[]n=新的int[5];
int i,j;
对于(i=0;i<5;i++){
System.out.println(“输入一个介于1和30之间的数字”);
n[i]=input.nextInt();
}
对于(i=0;i<5;i++){
对于(j=0;j
如您所见,我使用的循环变量从零索引开始,在达到数组大小之前结束。这通常被认为是良好的做法,因为数组(例如)从索引0开始。如果您确实想给老师留下深刻印象,也可以使用以下方法:

  private static int[] readNumbers(int amount) {
    Scanner input = new Scanner(System.in);

    int[] n = new int[amount];
    int i;

    for (i = 0; i < 5; i++) {
      System.out.println("Enter a number between 1 and 30 ");
      n[i] = input.nextInt();
    }

    input.close();

    return n;
  }

  private static void printStars(int[] amounts) {
    int i, j;

    for (i = 0; i < amounts.length; i++) {
      for (j = 0; j < amounts[i]; j++) {
        System.out.print("*");
      }
      System.out.println();
    }
  }

  public static void main(String[] args) {
    System.out.println("Riley Hall - Assignment 3\n");

    int[] n = readNumbers(5);
    printStars(n);
  }
private static int[]readNumbers(整数金额){
扫描仪输入=新扫描仪(System.in);
int[]n=新的int[金额];
int i;
对于(i=0;i<5;i++){
System.out.println(“输入一个介于1和30之间的数字”);
n[i]=input.nextInt();
}
input.close();
返回n;
}
私有静态无效打印星(int[]金额){
int i,j;
对于(i=0;i
它们使代码可重用,并且非常有用


根据格式设置,您始终可以获得IntelliJ IDEA community edition,并使用其自动格式设置功能来查看一般良好的格式设置效果。但在您对自己保留格式感到满意之前,您不应依赖此功能来完成这项工作。

如果您需要Java开发人员的帮助,请添加Java标记。但您的老师想说什么呢就是你不必重复你的代码(主要是循环部分)。你可以创建一个函数来使你的循环通用。层次结构示例帮助很大。我在编辑程序之前添加了程序的外观。我也喜欢使用注释。就这个问题而言,我认为使用注释可能不那么麻烦
  private static int[] readNumbers(int amount) {
    Scanner input = new Scanner(System.in);

    int[] n = new int[amount];
    int i;

    for (i = 0; i < 5; i++) {
      System.out.println("Enter a number between 1 and 30 ");
      n[i] = input.nextInt();
    }

    input.close();

    return n;
  }

  private static void printStars(int[] amounts) {
    int i, j;

    for (i = 0; i < amounts.length; i++) {
      for (j = 0; j < amounts[i]; j++) {
        System.out.print("*");
      }
      System.out.println();
    }
  }

  public static void main(String[] args) {
    System.out.println("Riley Hall - Assignment 3\n");

    int[] n = readNumbers(5);
    printStars(n);
  }