黑马程序员技术交流社区
标题: 使用For循环输出一个菱形 [打印本页]
作者: ValarDohaeris 时间: 2019-1-15 22:15
标题: 使用For循环输出一个菱形
使用For循环输出一个菱形
首先,我们可以先画一个菱形的样式来观察有什么规律
//*
/***
*****
/***
//*
[size=18.6667px]/正斜杠代表空格
可以看到菱形中的*号是逐级递增任何逐级递减,增加的数量和减少的数量是一模一样的,所以我们可以将一个菱形看做为一个递增的等腰三角形加上一个递减的等腰三角形。
在菱形的逐级递增中也可以看到左边的空白部分也在逐级递减,与菱形中*号相反,在菱形的逐级递减中也可以看到左边的空白部分也在逐级递增,而空白部分的形状可以看作为直角三角形。
所以我们可以使用For循环嵌套来输出这个菱形:
首先我们需要输出一个递增的三角形:
int max = 3; //定义一个上半部分行数为3的三角形
for(int i = 0 ; i < max ; i++){ //循环次数等于行数
//由上面的菱形可以看出来,第一行空格数量为2,第二行空格数量为1依次递减
for(int i2 = 0 ; i2 < max-i-1 ; i2++ ){
System.out.print(" ");//循环输出空格,不能换行
}
for(int i3 = 0; i3 < 1+i*2 ; i3++){//空格输出结束后循环输出菱形
System.out.print("*");//循环输出空格,不能换行
}
System.out.println();//一行输出结束后,执行换行,输出下一行
}
//上半部分三角形输出结束
//输出下半部分三角形行数为上半部分行数-1
for (int i = 0; i < max - 1; i++) {
for (int i2 = 0; i2 < i + 1; i2++) {//空格数量每行+1
System.out.print(" ");//输出空格
}
for (int i3 = 0; i3 < 2 * (max - (i + 1)) - 1; i3++) {//*号数量为每行递减
System.out.print("*");//输出*号
}
System.out.println();//每行循环结束换行
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |