空心,也就是说,除了第一行和最后一行,其余的行都只打印两个*,在什么地方打印*?
毫无疑问,这需要计算,每一行在什么地方打印*,跟这是第几行密切相关
另外,打印菱形,可以看作是先打印一个正三角形,再打印一个倒三角形
public class Diamond {
public static void main(String[] args){
for(int i=1; i<=7; i++){ //一共7行
if(i<=3) { //在1-3行打印正三角形
for(int j=1; j<=7; j++){ //每行7列
if(j==i+3||j==5-i){ //在i+3和5-i两个地方打印*,第一行这两者相等,所以只打印一个*
System.out.print("*");
}
else{
System.out.print(" ");
}
}
}
else{
for(int k=1; k<=7; k++){ //在4-7行打印倒三角形
if(k==i-3||k==11-i){ //在i-3和11-i两个地方打印*,最后一行这两者相等,所以只打印一个*
System.out.print("*");
}
else{
System.out.print(" ");
}
}
}
System.out.println();
}
}
}
打印空心图形,可以通过循环+条件来控制,但是条件怎么得到?
由第几行和这行的*在第几个位置计算得到