Java 教程
首先,確定我們的輸出結(jié)果是:
那么我們怎么才能做到這樣呢?
1、首先分析圖形的結(jié)構(gòu)
我們可以看到,圖形共5行,那么,我們是否可以建立一個(gè)for循環(huán)語句,使其控制在5行?答案是肯定的。
for(int i = 1 ;i <= 5 ;i++ ){ }
這樣,我們就建立了一個(gè)循環(huán)5次的for循環(huán)代碼塊,為最外圈的循環(huán)。
2、然后,分析圖形是怎樣構(gòu)成的,我們可以把圖形拆分為以下幾部分:/p>
我們可以把圖形拆分為這樣三個(gè)三角形。
3、建立1號(hào)空白三角形
可以看,第一行是輸出4個(gè)空格,第二行輸出3個(gè)空格,第三行輸出2個(gè),第四行輸出1個(gè),第五行沒有
從這個(gè)規(guī)律可以看出,是依次遞減的規(guī)律,那么如何實(shí)現(xiàn)呢?
我們可以想象從1到5,中間有四個(gè)數(shù)字;從2到5中間有3個(gè)數(shù)字,從3到5……
是不是可以利用這個(gè)原理呢?答案是當(dāng)然的。那么如何實(shí)現(xiàn)?請看代碼:
for(int i = 1;i<=5 ;i++) { for(int j = 5; j >= i ; j--)//建立1號(hào)圖形 System.out.print(" "); System.out.println(); }
第一個(gè)for語句就是剛才定義的五次循環(huán)語句
第二個(gè)for循環(huán),我們來進(jìn)行解析:
首先 定義一個(gè)int類型的j變量,給j賦值為5
然后我們想,既然要縮短距離,那么每次循環(huán)j就-1,那么剛好符合我們的要求:
第一次大循環(huán) i=1,j=5, 所以符合j>=i的條件然后輸出一個(gè)空格,然后j-1,現(xiàn)在j的值為4符合j>=i,再輸出
……
一直到j(luò)=0,j>=i不符合,跳出內(nèi)循環(huán)
現(xiàn)在到System.out.println(); 換行
現(xiàn)在回到外循環(huán) i++ ,i變成2,符合i<=5,進(jìn)入內(nèi)循環(huán)
定義j=5 , j>=i,符合,輸出一個(gè)空格,j-1
j現(xiàn)在為4 ,j>=i,符合,輸出一個(gè)空額,j-1
……
一直到j(luò)=1,j>=i,不成立,跳出內(nèi)訓(xùn)還,然后換行
然后i+1 然后再進(jìn)入內(nèi)循環(huán)……
如此循環(huán)下去 形成了一個(gè)四行的倒三角,1號(hào)圖案形成。
4、建立2號(hào)圖形,和1號(hào)圖形原理完全相同,不過正好相反
for(int i = 1 ;i<=5 ;i++){ for(int j = 5; j >= i ; j--)//建立1號(hào)圖形 System.out.print(" "); for(int j = 1; j <= i; j++)//建立2號(hào)圖形 System.out.print("*"); System.out.println(); }
如建立1號(hào)圖形相同,大家可以自己理解,如此2號(hào)建立
5、建立3號(hào)圖形
for(int i = 1; i <= 5; i++){ for(int j = 5 ;i <= j; j--)//建立1號(hào)圖形 System.out.print(" "); for(int j = 1; j <= i; j++)//建立2號(hào)圖形 System.out.print("*"); for(int j = 1; j < i; j ++)//建立3號(hào)圖形 System.out.print("*"); }
同樣,如同1號(hào)二號(hào)相同,建立3號(hào)圖形原理相同
但是大家注意一點(diǎn),3號(hào)圖形沒有在第一行輸出,所以要在第一次大循環(huán)中掐斷它,讓它在第二次大循環(huán)中輸出
所以 這次的判斷條件為 j < i 去掉了等于。
投稿作者郵箱:1030691530@qq.com