2015-02-18 44 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 2015-02-18 00:49:10

+0

更改後打印'd'的值。你可能想'd = d + 1;' – Pshemo 2015-02-18 00:52:40

回答

3

你在這裏做了一些有趣的事情。在你的外部for循環的第一次迭代中,內循環開始時的值爲:c = 10,d = 0,下一次迭代:c = 10,d = -2,next .. c = 10,所以首先它會打印10星,然後12星,然後14星...

希望這會有所幫助。

變化

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

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

,看看會發生什麼。

0

for循環

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

外基本上代表行它將打印從0開始到9.對於每一行或數,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