嵌套用于制作正方形的循环

时间:2014-08-21 08:42:51

标签: java nested-loops

我想用数字制作一个正方形。这样的东西:

1 2 3 4 
2 3 4 5 
3 4 5 6 

我写了一段代码:

int a=input.nextInt();
for(int i=1; i<=a; i++){
    for (int k=1;k<=a;k++){
        int c=k+1;
        int g=k+2;
        System.out.println();
        System.out.print(k+" ");
        System.out.print(c+" ");
        System.out.print(g+" ");
    }
    System.out.println();

结果是:

1 2 3 4 
2 3 4 5 
3 4 5 6 

1 2 3 4 
2 3 4 5 
3 4 5 6 

那么,错误在哪里?

4 个答案:

答案 0 :(得分:2)

您正在第二个循环中打印一个完整的正方形。第一个是生成多个正方形。

试试这段代码:

   public static void main(String[] args) {
      //      int a=input.nextInt();
      int a = 4;

      for (int i = 1; i <= a; i++) {
         for (int k = 0; k < a; k++) {
            System.out.print(i + k);
            System.out.print(" ");
         }
         System.out.println();
      }
   }

答案 1 :(得分:0)

如果您只删除第一个循环,它将只打印一个方格。

int a=input.nextInt();
//for(int i=1; i<=a; i++){  comment this one
  for (int k=1;k<=a;k++){
    int c=k+1;
    int g=k+2;
    System.out.println();
    System.out.print(k+" ");
    System.out.print(c+" ");
    System.out.print(g+" ");
 }
System.out.println();
//} and this
只有输入为3时才会打印

和方形。

1 2 3 
2 3 4 
3 4 5 

为你的方块

    public static void main (String[] args) throws java.lang.Exception
{

int a=3;
//for(int i=1; i<=a; i++){
    for (int k=1;k<=a;k++){
    int c=k+1;
    int g=k+2;
    int e=k+3;//added
    System.out.println();
    System.out.print(k+" ");
    System.out.print(c+" ");
    System.out.print(g+" ");
     System.out.print(e+" ");//added
    }
System.out.println();
//}
}

输出:

1 2 3 4 
2 3 4 5 
3 4 5 6

答案 2 :(得分:0)

因为单个循环在你的情况下会很好。

考虑到您将行数作为输入

你的循环应该从i = 1运行到i&lt; = a。

你不需要采取另一个循环只需在循环中打印i,i + 1,i + 2,i + 3。

答案 3 :(得分:0)

试试这个

public static void main(String[] args) {          
          int a = 4;
          for (int i = 1; i <= a-1; i++) {
             for (int j = 0; j < a; j++) {
                System.out.print(i + j);
                System.out.print(" ");
             }
             System.out.println();
          }
       }