2015-02-18 48 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