嵌套循环背后的逻辑

时间:2016-04-21 08:25:02

标签: java logic nested-loops

我很难理解嵌套循环程序背后的逻辑,产生如下输出:

Pattern C
                   1 
                 1 2 
               1 2 3 
             1 2 3 4 
           1 2 3 4 5 
         1 2 3 4 5 6 
       1 2 3 4 5 6 7 
     1 2 3 4 5 6 7 8 
   1 2 3 4 5 6 7 8 9 
 1 2 3 4 5 6 7 8 9 10 

以下是代码:

void patternC(){
    System.out.println("\nPattern C");
    for(int m = 1; m <= a; m++){    //<-- a is for the desired number of lines

        //spasi
        for(int n = m; n <= a-m+a  ; n++){
            System.out.print(" ");
        }

        for(int o = 1; o <= m ; o++){
            System.out.print(o + " ");
        }

        System.out.println();
    }
}

我知道第一个for用于该行,第三个for用于在每行中打印的数字。但是我仍然没有在第二个for中得到逻辑(我知道它的间距)但你可以用例子来解释我吗?谢谢。

3 个答案:

答案 0 :(得分:0)

理解嵌套循环基础知识的最佳方法是在纸上执行代码。只需按照每一步并跟踪每个变量,你就应该在纸上有相同的输出,并了解循环的作用。

答案 1 :(得分:0)

如果您使用的是IDE的建议::在调试模式下运行您的方法以了解流程。以下是如何使用Eclipse IDE在调试模式下运行程序的链接。

http://www.vogella.com/tutorials/EclipseDebugging/article.html

如果您正在使用其他IDE,请参阅Google的教程。还有@ Titulum的解决方案。

答案 2 :(得分:-1)

void patter(){

  for(int m = 1; m <= a; m++) // a is desired no to be selected by user. 
  {           
    for(int n = 1; n <= a-m  ; n++){
        System.out.print(" ");
    }

    for(int o = 1; o <= m ; o++){
        System.out.print(o);
    }

    System.out.println();
  }
}