一、輸出以下圖形
********
********
********
********
用for...for...嵌套循環,內循環控制每一行的個數(即列數),外循環控制行數
class ForDraw { public static void main(String[] args) { for (int i=1;i<=4 ;i++ ) //外循環,控制行數 { for (int j=1;j<=8 ;j++ ) //內循環,控制每行打印*的個數。j=1;j<=8,即8個 { System.out.print("*"); } System.out.print("\n"); //一行完成后,跳出循環,打印一個換行符 } } }
以下,可控制行和列
class ForDraw { public static void main(String[] args) { int lay=5; //變量lay控制行 int col=12; //變量col控制列 for (int i=1;i<=lay ;i++ ) { for (int j=1;j<=col ;j++ ) { System.out.print("*"); } System.out.print("\n"); } } }
二、輸出以下圖形
*
**
***
****
*****
******
*******
********
方法一(推薦方法):
思路:
第一行1個、第二行2個。。。。說明每行打印*數與行號一樣。
class ForDraw { public static void main(String[] args) { for (int i=1;i<=8 ;i++ ) //控制行數。 { for (int j=0;j<=i ;j++ ) //控制每行*數。循環條件是j<=i,即每行*最大數即行號。 { System.out.print("*"); } System.out.print("\n"); } } }
方法二:
每循環一次,打印數量比上一行多一次。可定義一個變量,記錄下循環次數。第一次循環打印1個*,第次循環打印2個*。
class ForDraw { public static void main(String[] args) { int count=1; //記錄循環次數。 for (int i=1;i<=8 ;i++ ) //控制行數。 { for (int j=0;j<count ;j++ ) //控制每行*數。 { System.out.print("*"); } System.out.print("\n"); count++; } } }
三、輸出以下圖形
********
*******
******
*****
****
***
**
*
方法一(推薦):
思路:第一行8個、第二行7個……即最多打印8個,第一行循環8次,即1-8;第二行循環7次,即2-8,以此類推
class ForDraw { public static void main(String[] args) { for (int i=1;i<=8 ;i++ ) //控制行數。 { for (int j=i;j<=8 ;j++ ) //控制每行*數。循環條件是j=i;j<=8,即每行數量循環次數。 { System.out.print("*"); } System.out.print("\n"); } } }
方法二:第一行8個、第二行7個……即最多打印8個,第一行循環8次,即1-8;第二行循環7次,即1-7,以此類推
class ForDraw { public static void main(String[] args) { for (int i=1;i<=8 ;i++ ) //控制行數。 { for (int j=0;j<=(8-i) ;j++ ) //控制每行*數。循環條件是j=i;j<=8,即每行數量循環次數。 { System.out.print("*"); } System.out.print("\n"); } } }
四、輸出以下圖形
*
**
***
****
*****
******
思路:
第1行實際上是打印5個空格和1個*;第1行實際上是打印4個空格和2個*……以此類推
class ForDraw { public static void main(String[] args) { for (int i=1;i<=6 ;i++ ) //控制行數。 { for (int j=i;j<=5 ;j++ ) //控制空格的輸出。第一行5個空,第二行4個空,以此類推 { System.out.print(" "); } for (int j=1;j<=i ;j++ ) //控制*的輸出。第一行1個*,第二行2個*,以此類推。 { System.out.print("*"); } System.out.print("\n"); } } }
五、輸出以下圖形
*
***
*****
*******
*********
思路:
第1行實際上是打印4個空格,1個*;第2行實際上是打印3個空格,3個*……*個數是行號*2-1
class ForDraw { public static void main(String[] args) { for (int i=1;i<=5 ;i++ ) //控制行數。 { for (int j=i;j<=4 ;j++ ) //控制空格的輸出。第一行4個空,第二行5個空,以此類推,共4行 { System.out.print(" "); } for (int j=1;j<=i*2-1 ;j++ ) //控制*的輸出。第一行1個*,第二行2個*,以此類推,即行號*2-1 { System.out.print("*"); } System.out.print("\n"); } } }
六、輸出以下圖形
*
* *
* *
* *
*********
思想:
第1行和最后一行單獨控制
其它幾行,用for...for...嵌套循環來控制。
class ForDraw { public static void main(String[] args) { for (int i=1;i<=4 ;i++ ) //控制第一行,打印4個空格 { System.out.print(" "); } System.out.print("*"); //第一行4個空格之后,打印一個* System.out.print("\n"); for (int i=1;i<=3 ;i++ ) //控制行數。 { for (int j=i;j<=3 ;j++ ) //控制空格的輸出。第一行3個空,第二行2個空,以此類推,共3行 { System.out.print(" "); } System.out.print("*"); //空格后輸出一個* for (int j=1;j<=i*2-1 ;j++ ) //控制空格的輸出。 { System.out.print(" "); } System.out.print("*"); //空格后輸出一個* System.out.print("\n"); } for (int i=1;i<=9 ;i++ ) //控制最后一行 { System.out.print("*"); } } }
方法二(推薦此方法):
思路:
先打印三角形前面的空格,再打印三角形
三角形中,第一行和最后一行全是*,先打印。
三角形中,其余各行中,第一個和最后一個字符是*,其余是空格。
class ForDraw { public static void main(String[] args) { int lay=5; //層數5層 for (int i=1;i<=lay ;i++ ) //控制5層循環。i變量控制層數。 { //以下控制三角形前面的空格打印,1--4 2--3 3--2。j用一次for循環就釋放。 for (int j=1;j<=lay-i ;j++ ) { System.out.print(" "); } //以下控制*打印 //1--1 2--3 3--5 //其余2個,最后一行全是。k變量用來控制每一行的*數量。 for (int k=1;k<=i*2-1 ;k++ ) { //第一層和最后一層,全打*。涉及到層數,用i變量。 if (i==1 | i==lay) { System.out.print("*"); }else { //第一個和最后一個打*,其余打空格。涉及到每一層的*個數,用k變量。 if (k==1 |k==i*2-1) { System.out.print("*"); } else { System.out.print(" "); } } } System.out.println(); } } }