Java 嵌套for循环以每行打印数组的七个元素

Java 嵌套for循环以每行打印数组的七个元素,java,Java,我正在编写一个程序,将2的幂插入一个数组,一直到2^2000,然后在一行上打印出7个数字。我已经把所有的事情都弄明白了,所以它是有效的,但我觉得有一个更好更干净的方法来做这件事。。。特别是围绕嵌套for循环区域。我用y来减少主for循环,但我觉得这不是一个很合适的方法。代码: public class powers { public static void main(String[] args){ long arr[] = new long[2000]; for

我正在编写一个程序,将2的幂插入一个数组,一直到2^2000,然后在一行上打印出7个数字。我已经把所有的事情都弄明白了,所以它是有效的,但我觉得有一个更好更干净的方法来做这件事。。。特别是围绕嵌套for循环区域。我用y来减少主for循环,但我觉得这不是一个很合适的方法。代码:

public class powers {

   public static void main(String[] args){
      long arr[] = new long[2000];

      for (int x=0; x<2000; x++){
         arr[x] = (long) Math.pow(2, x);
       }


      for (int y=0; y<14;y++) {
         for (int z=0; z<7; z++) {
            System.out.print(arr[y++] + " ");
         }
         y--; // Decrement y by 1 so that it doesn't get double incremented when top for loop interates
         System.out.println(); // Print a blank line after seven numbers have been on a line
      }

      }

}
公共类权限{
公共静态void main(字符串[]args){
long arr[]=新long[2000];
for(int x=0;x
for(int i=0;i<2000;i++){
System.out.print(arr[i]);//注意它不是println
如果(i%7==6){//,则在每第7个元素之后都是真的
System.out.println();
}
}
用于(int i=0;i<2000;i++){
System.out.print(arr[i]);//注意它不是println
如果(i%7==6){//,则在每第7个元素之后都是真的
System.out.println();
}
}

以下代码更高效,因为它会在运行时打印出来。这样做可以节省再次遍历所有代码的成本。此外,正如上面的注释所述,long无法将值存储在这些幂的上部区域

public class powers {

    public static void main(String[] args){
        long arr[] = new long[2000];

        for(int x=0; x<2000; x++){

            arr[x] = (long) Math.pow(2, x);

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

            if(x%7==6)
                System.out.println();

        }

        //because your loop doesn't end on a 7th element, I add the following:
        System.out.println();

    }

}
公共类权限{
公共静态void main(字符串[]args){
long arr[]=新long[2000];

对于(int x=0;x而言,以下代码更有效,因为它会在运行时将其打印出来。通过这种方式,您可以节省再次遍历它们的成本。此外,正如上面的注释所述,long不能将值存储在这些幂次的上部区域

public class powers {

    public static void main(String[] args){
        long arr[] = new long[2000];

        for(int x=0; x<2000; x++){

            arr[x] = (long) Math.pow(2, x);

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

            if(x%7==6)
                System.out.println();

        }

        //because your loop doesn't end on a 7th element, I add the following:
        System.out.println();

    }

}
公共类权限{
公共静态void main(字符串[]args){
long arr[]=新long[2000];

对于(席)=(0);Xi查找它-长只有64位,所以答案当然不是。你需要JavaMath.BigType……是的,现在不太担心这个,但是谢谢你。我查了一下-长只有64位,所以答案当然不是。你需要JavaMath.BigType……是的,现在不太担心这个。谢谢。您的输出将以一个空行开始,而不会以\r\n您说的好像这是一件坏事一样结束。我会解决它,只是为了让您高兴。请给我一点时间。这似乎不是他所需要的,所以这是一个不好的想法。我不确定“以\r\n结束”(是否需要)但是它当然不应该用一个空行来表示。如果他不关心最后一个,为什么他要关心第一个呢?;)我还是更新了它。您的输出将以一个空行开始,不会以\r\n您说的好像这是一件坏事一样结束。我会修复它,只是为了让您高兴。给我一点时间。这似乎不是他所需要的,所以这是一个不好的想法。我不确定“结束于\r\n”是否需要它但是它当然不应该用一个空行来统计。如果他不关心最后一个,为什么他要关心第一个呢?;)我还是更新了它。