在进行之前先进行分析如果可以打印出一个菱形
构造出菱形的造型其实很简单无非就是空格()和星星的组合下面进行分析
一部分
第一行 先打印五个空格在打印一个星星
第二行 先打印四个空格在打印三个星星
第三行先打印三个空格在打印五个星星
第四行先打印两个空格在打印七个星星
第五行先打印一个空格在打印九个星星
第六行先打印零个空格在打印十一个星星
总结 星星数(2i-1)空格数是(6-i)
第二部分
第一行先打印一个空格在打印九个星星
第二行先打印两个空格在打印七个星星
第三行先打印三个空格在打印五个星星
第四行先打印四个空格在打印三个星星
第五行先打印五个空格在打印一个星星
总结 星星数(11-2i)空格数(i)
代码如下如下
System.out.println("打印菱形 11行");
//上半部分
for (int m = 1; m <= 6; m++){
for (int n = 1; n <= (6 - m); n++){
System.out.print(" ");
}
for (int n = 1; n <= (2*m - 1);n++){
System.out.print("*");
}
System.out.println();
}
//下半部分
for (int p = 1; p <= 5; p++){
for (int q = 1; q <= p; q++){
System.out.print(" ");
}
for (int q = 1; q <= (11-2*p); q++)
{
System.out.print("*");
}
System.out.println();
}
程序运行结果如下图:
空心菱形也大体相同,区别在于把原来实心部分的在进行划分一下即可
即不需要全部打印出来只需要打印每行的第一个星星和最后一个星星即可这个条件可以通过if语句实现
代码如下:
System.out.println("打印空心的菱形(11行)");
//上半部分
for (int a = 1; a<= 6; a++){
for (int b = 1; b <= 6-a; b++){
System.out.print(" ");
}
for (int b = 1; b <= 2*a-1; b++){
if (b==1 || b == 2*a-1){
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
//下半部分
for (int g = 1; g <= 5;g++){
for (int h = 1; h <= g; h++){
System.out.print(" ");
}
for (int h = 1; h <= 11-2*g; h++){
if (h == 1 || h== 11-2*g){
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
程序结果如下如所示:
原文:https://www.cnblogs.com/yushaoburunianshao/p/15084736.html