Java金字塔
public class TestDemo01 { public static void main(String[] args){ //第一个for用于每行输出 从i=1开始到i<=5,总共5行 for(int i=1;i<=5;i++){ //每行前缀空格,这个for用于表示每行输出*前面的空格 //从上面规律可得,每行输出的空格数为总层数,可以用5-i表示 for(int k=1;k<=5-i;k++){ System.out.print(" "); } //每行*号,可以发现每行输出的*为当前层*2-1,所以用2*i-1表示 for(int j=1;j<=2*i-1;j++){ System.out.print("*"); } System.out.println(); } } }
空心金字塔
public class TestDemo01 { public static void main(String[] args){ //行数 for(int i=1;i<=5;i++){ //每行前缀空格 for(int k=1;k<=5-i;k++){ System.out.print(" "); } //每行*号 for(int j=1;j<=2*i-1;j++){ //使用if做判断j==1时是首输出*,j==2*i-1为尾,i==5表示最后一行 if(j==1||j==2*i-1||i==5){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } }
空心菱形
相信有了以上基础后,写一个空心菱形不难,本质上就是将正空心金字塔倒过来,然后2个金字塔拼接起来,具体代码如下
public class TestDemo01 {
public static void main(String[] args){
//行数
for(int i=1;i<=5;i++){
//每行前缀空格
for(int k=1;k<=5-i;k++){
System.out.print(" ");
}
//每行*号
for(int j=1;j<=2*i-1;j++){
if(j==1||j==2*i-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
for(int i = 1,j=5;i<=5;i++,j--){
for (int k=1;k<i;k++){
System.out.print(" ");
}
for(int z=1;z<=2*j-1;z++){
if(z==1||z==(2*j-1)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}