java显示方法

时间:2013-01-24 09:12:21

标签: java arrays methods

这里我需要编写一个方法printArray,它显示数组的内容 num 并显示每个数组的内容 由空格分隔的数字。我必须在每20个元素之后开始一个新的行。

我写了这段代码,但每当我尝试执行它时,它会显示没有新行的数组

public class project2 {

    public static void main(String[] args) {

        int num []= new int [100];

        for (int i=0;i<num.length;i++){

            num[i]=-1;
            num[7]=7;
        }


        printArray(num);
        System.out.println(num);


    }

    public static void printArray (int array1[]){

        int count =20;
        for (int x=0;x<array1.length;x++){

            System.out.print(array1[x]+" ");
            if (array1[x]==count){

                System.out.println(" ");
                count=array1[x]+count;

            }

        }
    }
}

5 个答案:

答案 0 :(得分:1)

import java.util.Arrays;
import java.util.Random;

public class project2 {

  public static void main(String[] args) {

    int num[] = new int[100];

    Random random = new Random();
    for (int i = 0; i < num.length; i++) {

      num[i] = random.nextInt(100);
    }


    printArray(num);

    System.out.println('\n' + Arrays.toString(num));
  }

  public static void printArray(int array1[]) {

    int count = 20;
    for (int i = 0; i < array1.length; i++) {

      System.out.printf("%2d ", array1[i]);
      if ((i + 1) % count == 0) {

        System.out.println("");
      }

    }
  }
}

答案 1 :(得分:0)

问题在于 if (array1[x]==count)
您正在将count与数组中的值进行比较。而是将其与所需的计数进行比较,即20或使用其他答案/评论中建议的模运算符。

int count = 1;
for (int x=0;x<array1.length;x++){

    System.out.print(array1[x]+" ");

    if (count == 20){    // Check if its 20th element 
       System.out.println(" ");
       count=1;  // reset count 
    }
   count++;
}

答案 2 :(得分:0)

您应该使用更适合您使用的模数(或余数)运算符(%):

for (int x=0;x<array1.length;x++){
    System.out.print(array1[x]+" ");
    if (x>0 && (x%count)==0){
        System.out.println(" ");
    }

}

这样,每count个字符都会有一个新行,第一行不会有(这就是x>0检查的原因)。

另外,在原帖中,这句话坦白说完全不好:

count=array1[x]+count;

它会做什么?为什么要将存储在数组中的添加到固定计数器?考虑到这一点,我建议你应该稍微坐下来,并尝试考虑事情在后台如何运作......没有魔力!

答案 3 :(得分:0)

仔细看看你的if语句:

if (array1[x]==count)

根据您的数组值,这将永远不会返回true

答案 4 :(得分:0)

  

我必须在每20个元素后开始一个新行。

更改为以下代码:

if (x%20 == 0)
{
    System.out.println();
}

取代

if (array1[x]==count)
{
    System.out.println(" ");
    count=array1[x]+count;
}