2015-02-18 3 views
-1
public class Pattern { 

    public static void main(String[] args) { 

     int a; 
     String b = "*"; 
     int d = 0; 

     for (a = 0; a < 10; a++) { 
      for (int c = 10; c > d; c--) { 
       System.out.print(b); 
      } 
      System.out.println(); 
      d = d - 2; 
     } 
    } 
} 

Эта программа печатает растущий звездный шаблон.Я не понимаю, как работает эта программа

********** 
************ 
************** 
**************** 
****************** 
******************** 
********************** 
************************ 
************************** 
**************************** 

Это прекрасно работает, но я думал, что это напечатает декрементный звездный узор. Может кто-нибудь объяснить, как эта программа работает? Я относительно новичок в Java.

+0

Посмотрите внимательно на внутренний контур. – immibis

+0

Печать значений 'd' после его изменения. Вы, наверное, хотели 'd = d + 1;' – Pshemo

ответ

3

Вы делаете здесь несколько интересных вещей.

При первом введении внешнего цикла для внутреннего цикла начинается цикл со значениями: c = 10, d = 0, следующая итерация: c = 10, d = -2, next .. c = 10, d = -4 и т. д. Итак, сначала он напечатает 10 звезд, затем 12 звезд, затем 14 звезд ...

Надеюсь, это поможет.

изменение

for (int c = 10; c > d; c--) 

в

for (int c = 10; c > a; c--) 

и посмотреть, что происходит.

0

Наружный цикл

(a = 0; a < 10; a++) {...} 

основном представляет количество строк, он будет напечатан, начиная от 0 до 9. Для каждой строки или A, D получает уменьшается на 2. Таким образом, для

a = 0, c goes from 10 to 1 (d = 0) printing 10 '*'s 
a = 1, c goes from 10 to -1 (d = -2) printing 12 '*'s 
a = 2, c goes from 10 to -3 (d = -4) printing 14 '*'s and so on 

С каждой строкой d уменьшается на 2, увеличивая число звезд на 2.

Смежные вопросы