打印出如下的棱形图形:
这题考查的是对循环的理解和运用。
分析:打印这个图形可以分为上半部分和下半部分。
首先打印输出上面的半个正三角,它一共五行,由前面的空格和后面的 * 组成,观察行数与空格之间的关系可以发现,如下规律:
上半部分
行数i
第0行:4个空格+1个*,空格数量:4-i --> 4-0=4 ※的数量:2×i+1 2×0+1=1
第1行:3个空格+3个*,空格数量:4-i --> 4-1=3 ※的数量:2×i+1 2×1+1=3
第2行:2个空格+5个*,空格数量:4-i --> 4-2=2 ※的数量:2×i+1 2×2+1=5
第3行:1个空格+7个*,空格数量:4-i --> 4-3=1 ※的数量:2×i+1 2×3+1=7
第4行:0个空格+9个*,空格数量:4-i --> 4-4=0 ※的数量:2×i+1 2×4+1=9
下半部分
行数i
第0行:1个空格+7个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
第1行:2个空格+5个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
第2行:3个空格+3个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
第3行:4个空格+1个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
因此,程序可以分开写成如下形式:
public class diamondTest{
public static void main(String[] args){
//上半部分
for(int i=0;i<5;i++) {//i表示行数
//打印空格
for(int j=0;j<4-i;j++) {
//不换行打印
System.out.print(" ");
}
//打印*
for(int j=0;j<2*i+1;j++) {
System.out.print("*");
}
//换行
System.out.println();
}
//下半部分
for(int i=0;i<4;i++) {//i表示行数
//打印空格
for(int j=0;j<i+1;j++) {
System.out.print(" ");
}
//打印*
for(int j=0;j<7-2*i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}