JAVA用for循环打印空心菱形

网友投稿 327 2022-08-30


JAVA用for循环打印空心菱形

空心菱形如图所示

那么我们应该如何去写出来呢?这就不得不引出一个非常经典的案例,金字塔案例,菱形http://像不像是两个对称的金字塔呢?废话不多说了,上思路:(仅代表个人理解,欢迎指点)

1.首先我们要写出一个空心菱形,那么我们首先得把需求由繁化简,把他拆分成一个一个简单的需求,

1.1那我们就先写半个金字塔,

是不是很眼熟的结构,没错和九九乘法表类似的结构,上代码

for(int i = 1;i <= 5;ihttp://++){ //i代表层数,这个可以设置一个变量接收,随便几层都行,不一定非要是5

for(int j = 1;j <= i;j++){ //j代表个数

System.out.print("*");

}

System.out.print("\n");

//System.out.println(" ");这样也行

}

半个金字塔出来了,那我们接下来就写一个完整的空心金字塔

//输出一个空心金字塔

//思路分析:

//1.补全金字塔

// * //空格数为 总层数 - 1 //个数为 1 3 5 7 9 什么规律呢 就是 2 * 当前层数 - 1

// *** //空格数为 总层数 - 1

// *****

// *******

//*********

//2.将金字塔镂空

// * 第一层 1个

// * * 第二次 2个

// * *第三层 2个

// .... 第n层 2个

//*********最后一层 全部有

//大致就是这个图形,(图形不准确,请自行脑补)

for(int i = 1;i <= 5;i++){// i是层数

//打印出每层前面的空格数

for(int k = 1;k <= 5 - i;k++){

System.out.print(" ");

}

//控制每层打印的个数

for(int j = 1;j <= 2 * i - 1;j++){ //j是个数

//空心金字塔都是第一个和最后一个位置有*,最后一层则是全部输出

if(j == 1 || j == 2 * i - 1|| i == 5){

System.out.print("*");

}else{

System.out.print(" ");

}

}

System.out.print("\n");

}

那么菱形就已经很简单了 我们只需要把空心金字塔最后一层的全部输出去掉 也就是 i == 5注销,就得到这么一个东西

菱形的工作已经完成了大半,接下来照猫画虎把下半部分写出来就可以了

for(int a = 4;a > 0;a--){

//打印空格

for(int c = 1;chqPoIVdC <= 5 - a;c++){

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.print("\n");

}

虽然菱形的下半部分是一个倒过来的金字塔, 但是其规律并没有发生变化,空格数依旧是总层数 - 1

个数也没有发生变化,就是顺序倒过来,把++改成--就好了

完整的代码:

for(int i = 1;i <= 5; i++){

//控制前面的空格数

hqPoIVdC 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.print("\n");

}

for(int a = 4;a > 0;a--){

//打印空格

for(int c = 1;c <= 5 - a;c++){

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.print("\n");

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python-列表(切片,复制)
下一篇:Python-列表小练习1(python列表基础题)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~