【问题标题】:Better way to write a for loop over and over?一遍又一遍地编写for循环的更好方法?
【发布时间】:2017-03-01 06:08:34
【问题描述】:

我正在努力提高 Java 编程能力,我是一名新手,在明年上大学之前,我想出了如何在空闲时间编写基本程序和基本数据结构!

那么这里有没有更好的方法来编写这段代码?

                int p;
                for (p = 0; p < 10; p++) {
                    System.out.print(time[p] + ",");

                }
                System.out.println();
                System.out.println();
                System.out.println();
                for (p = 0; p < 10; p++) {
                    System.out.print(something[p] + ",");
                }
                System.out.println();
                System.out.println();
                System.out.println("somethingagain1[p]");
                for (p = 0; p < 10; p++){
                    System.out.print(something again2[p] + ",");

                }

【问题讨论】:

  • 您可以创建一个带有参数的函数,如要显示的消息、长度等,并在您想使用 for 循环打印时调用该函数
  • 不用写 3 println() 你可以写 System.out.println("\n\n"); 这样\n 表示换行。
  • 你可以在Arrays库中使用Arrays.toString(array)来打印一个数组,不需要使用for循环。
  • 是的,您可以编写一个可重用的方法,例如 void printMyArray(int[] array){ for (int p = 0; p

标签: java arrays printing


【解决方案1】:
  1. 将常用功能提取到新方法中。

  2. 除非您在循环外需要它,否则不要转发声明 for 循环变量

  3. 可以使用import static导入类的静态变量,直接使用,不带类名。在这种情况下,将System.out 用作out 很有用,而不必重复System.out

  4. xSystem.out.println() 实例折叠成一个重复\n x 次的out.print("\n\n\n"); 调用。

这是我的尝试:

import static java.lang.System.out;

class Main {
    public static void main(String[] args) {
        int[] time = {1, 2, 3};
        int[] something = {1, 2, 3};
        int[] something2 = {1, 2, 3};

        Main.printArray(time);
        out.print("\n\n\n");
        Main.printArray(something);
        out.print("\n\n\n");
        Main.printArray(something2);
    }

    public static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) out.print(array[i] + ",");
    }
}

【讨论】:

  • 我用打印 x 行的新方法重构了你的代码。
【解决方案2】:

首先创建一个method,然后获取相互参数(在您的情况下为数组),在此方法中创建您的for循环,调用该方法,这样您就不必每次都创建for循环。

public static void Looper(int[] array) {
    for (int i = 0; i < array.length; i++){
        System.out.print(array[i] + ",");

    }
  }

【讨论】:

    【解决方案3】:
    public static void printdata(Object data[] )
    { 
        for (int p = 0; p < data.length; p++)
        {
          System.out.print(data[p] + ",");
    
        }
    }
    

    编写上面的函数并调用如下。

     printdata(something);
    

    【讨论】:

      【解决方案4】:

      就像 Michal 提到的那样,根据 Java 标准,您的数组命名似乎不正确,但是假设您已经声明了三个名为“一、二、三”的字符串数组,那么稍后编写代码可能会更简单像这样循环:

      String[][] arrays = { one, two, three };
      
      int counter = 0;
      while( counter < 3){
          for( int p=0; p<10; p++ ){
              System.out.print( arrays[counter][p] + ",");
          }
          System.out.println("\n\n\n");
      }
      

      它运行 while 直到计数器变为 2,并且 for 循环在 while 循环内。您无需多次声明 int p。在 for 循环之后发送三行返回。

      它的代码更简单,并且易于支持。

      【讨论】:

        【解决方案5】:

        我有一些不清楚的地方,但是:

        1. 所有这些代码都应该放在某个类的main 方法中

        2. something again2[p] 语法错误,Java 中的名称不应包含空格!

        3. 我了解,您之前声明的所有表(timesomething 表);

        4. 您应该使用几个换行符(\n%n),而不是空白的 ,,printlines";

        5. "somethingagain1[p]" 将返回一个文本,而不是表格的元素!

        6. 迭代器的常用字母是i,但使用什么取决于你:)

        7. 如果你不在循环外使用迭代器,你应该这样写:

          for (int p = 0; p &lt; 10; p++)

        【讨论】:

        • 当程序员从0开始计数时;)
        • 是关于Java的,所以我调整一下;)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-05
        • 2021-11-30
        • 2017-08-24
        • 1970-01-01
        相关资源
        最近更新 更多