【问题标题】:How do I print out only 10 elements per line for my array?如何为我的数组每行仅打印 10 个元素?
【发布时间】:2019-04-29 04:14:11
【问题描述】:

我创建了一个包含 50 个元素的数组。

前 25 个元素等于索引的平方,后 25 个元素等于索引乘以 3。

这是我当前的输出: 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 75 78 81 84 87 90 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141 144 147

我想要的输出是这样的:

0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 75 78 81 84 87 90 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141 144 147

我尝试过使用格式化功能 (printf),但似乎无法使用它。我也尝试过使用 if 语句,但这给了我“无法将 int 转换为布尔值”的错误。

我搜索了一些类似的问题,但它们的解决方案要么太复杂,我无法理解,要么不适用于我的特定代码,因为我已经在使用 for 循环。

有没有人有一个简单的方法来实现这一点?这是一个家庭作业。我把逻辑部分写下来了,具有讽刺意味的是,这应该是困难的部分,但这个格式化部分让我很难过哈哈

感谢您的帮助!

这是我现在的代码:

int [] Number = new int [50];
for(int i = 0; i < Number.length/2; i++) {//first loop

    System.out.print(i * i + " ");

}

for(int i = 25; i < Number.length; i++) {//second loop

    System.out.print(i * 3 + " ");
}

【问题讨论】:

  • 作业到底是什么?因为以这种方式存储数据是非常不自然的。如果只需要输出数字,还有更好的方法。

标签: java arrays for-loop


【解决方案1】:

试试这个:

   int[] Number = new int[50];
    for (int i = 0; i < Number.length / 2; i++) {//first loop

        if (i % 10 == 0 && i > 0) {
            System.out.println();
        }
        System.out.print(i * i + " ");

    }

    for (int i = 25; i < Number.length; i++) {//second loop
        if (i % 10 == 0) {
            System.out.println();
        }
        System.out.print(i * 3 + " ");
    }

【讨论】:

    【解决方案2】:

    您不需要数组。你想做的是:

    循环 50 次

    • 第一次,将i设置为0
    • 第二,将i设置为1
    • 第50次,将i设置为49

    每次:

    • 如果i &lt; 25打印i * i
    • 如果i &gt;= 25打印i * 3

    每 10 次,打印一个新行。

    以下是不用数组的方法:

    int size = 50;
    for (int i = 0; i < size; i++) {
        // Print a newline after every 10 elements
        if (i != 0 && i % 10 == 0) {
            System.out.println();
        }
    
        // Print i * i for 0 up to but excluding 25
        // Print i * 3 after that
        if (i < size / 2) {
            System.out.print(i * i + " ");
        } else {
            System.out.print(i * 3 + " ");
        }
    }
    

    如果你真的想遍历数组的元素:

    int[] myArr = new int[50];
    for (int i = 0; i < myArr.length; i++) {
        if (i != 0 && i % 10 == 0) {
            System.out.println();
        }
    
        if (i < size / 2) {
            System.out.print(i * i + " ");
        } else {
            System.out.print(i * 3 + " ");
        }
    }
    

    另外,将变量命名为Number 也不是一个好主意,因为:

    • Java 中已经有一个名为 Number 的类,它可能会使读者感到困惑。
    • Java 中的变量按照约定应该在camelCase 中。 PascalCase 中的类名(请参阅 here)。

    【讨论】:

    • 为什么要将两个循环合并为一个,在每个循环中添加一个额外的if,让代码更难理解?
    • 您不必这样做。这取决于你。
    【解决方案3】:

    数组是否需要存储正确的值?

    int[] numbers = new int[50];
    for (int i=0; i<numbers.length; ++i) { //calculating correct value into the array
        numbers[i] = (i < 25) ? i * i : i * 3;
    }
    
    for (int i=0; i<numbers.length; ++i) { //displaying data
        if (i % 10 == 0 && i > 0) {
            System.out.println();
        }
        System.out.print(numbers[i] + " ");
    }
    

    【讨论】:

      【解决方案4】:

      希望对你有帮助

      int[] arrNum = new int[50];
      for (int i = 0; i < numbers.length; ++i) { //First loop to enter the data
       numbers[i] = ((i < 25) ? i * i : i * 3);
      }
      
      for (int i = 0; i < numbers.length; ++i) { //Second loop to output data
       if (i % 10 == 0) System.out.println;
       System.out.print(numbers[i] + " ");
      }
      

      【讨论】:

        【解决方案5】:
        int[] array = new int[50];
        int count = 0; // To print 10 elements per line
        for(int I = 0; I < array.length; I++) {
            if (count == 10) {            
                System.out.println();        
                count = 0;
            }    
            System.out.print(a1[i] + " ");
            count++;
        }
        

        【讨论】:

        • 请详细说明,发码不够,看help
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-09
        • 2020-06-17
        • 1970-01-01
        • 2019-04-15
        相关资源
        最近更新 更多