2016-04-21 3 views
-2

Я с трудом пытаясь понять логику программы вложенных циклов, которые производят вывод так:логика вложенных циклов

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(); 
    } 
} 

I знать первый for для линии, а третий for для цифры, напечатанной в каждой строке. Но я все еще не получаю логику во втором for (я знаю, что это для интервала), но можете ли вы объяснить мне пример? Спасибо.

+0

понять попытайтесь распечатать значения '' M' n' и 'O' вместо –

ответ

0

Лучший способ понять основы вложенных циклов - выполнить код на бумаге. Просто следуйте каждому шагу и отслеживайте каждую переменную, и вы должны иметь одинаковый вывод на бумаге, а также понять, что делает цикл.

+0

Или выполнить код в отладчике и смотреть счетчики и лимиты. – Konrad

0

Предложение для вас, если вы используете IDE :: выполните свой метод в режиме отладки, чтобы понять поток. Вот ссылка о том, как запустить программу в режиме отладки с помощью Eclipse IDE.

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

Google для учебных пособий, если вы используете другой IDE. Остальное идет с решением @ Titulum.

-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(); 
    } 
} 
Смежные вопросы