一、输出以下图形
********
********
********
********
用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(" "); //一行完成后,跳出循环,打印一个换行符 } } }
以下,可控制行和列
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(" "); } } }
二、输出以下图形
*
**
***
****
*****
******
*******
********
方法一(推荐方法):
思路:
第一行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(" "); } } }
方法二:
每循环一次,打印数量比上一行多一次。可定义一个变量,记录下循环次数。第一次循环打印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(" "); 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(" "); } } }
方法二:第一行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(" "); } } }
四、输出以下图形
*
**
***
****
*****
******
思路:
第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(" "); } } }
五、输出以下图形
*
***
*****
*******
*********
思路:
第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(" "); } } }
六、输出以下图形
*
* *
* *
* *
*********
思想:
第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(" "); 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(" "); } 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(); } } }