Java:控制台打印菱形

您所在的位置:网站首页 java中怎么打印菱形 Java:控制台打印菱形

Java:控制台打印菱形

2023-12-30 20:14| 来源: 网络整理| 查看: 265

 编写程序,实现:在控制台输入一个奇数,打印相应行数的菱形。

例:输入7,输出结果如下,

【解析】这种问题主要用到了循环的嵌套,对于很多的新手来说着实费了不少头脑。难度在于如何计算空格和“*”的个数,那么就这俩问题进行分析。

第一步,将这个图形分为上下两部分,如图。

第二步,就是分别打印这两个部分。在这里我们需要两个变量来分别寄存“ “和“*”的个数,

用k代表“ ”,用j代表“*”,用num代表“从键盘输入的数”,这样可以得到如下规律:

ikj031122213.........num/2+1num/2-inum/2+1

 

 

 

 

 

 

 

 第三步,根据以上规律使用for循环写出如下代码:

for(int i = 0; i < num / 2 + 1;i ++){ for(int k = 0;k < num / 2 - i;k ++){ System.out.print(" ");     }     for(int j = 0;j < i + 1;j ++){         System.out.print("* ");     }     System.out.println(); }

 这样,上半部就解决了。下面开始下半部分。

同样的也是需要两个变量当作计数器,得出下表:

ikj013122231.........num/2num/2num/2-1

 

 

 

 

 

 

 

 第四步,由上表写出代码:

for(int i = 0;i < num / 2;i ++){ for(int k = 0;k < i + 1;k ++){ System.out.print(" "); } for(int j = 0;j < num / 2 - i;j ++){ System.out.print("* "); } System.out.println(); }

 最后,整合到一起即可,测试代码。

 以下为原码:

import java.util.Scanner; class TestLoopNest{     public static void main(String[] args){         Scanner s = new Scanner(System.in);         System.out.println("请输入一个数");         int num = s.nextInt();         //上半部         for(int i = 0; i < num / 2 + 1;i ++){             for(int k = 0;k < num / 2 - i;k ++){                 System.out.print(" ");             }             for(int j = 0;j < i + 1;j ++){                 System.out.print("* ");             }             System.out.println();         }         //下半部         for(int i = 0;i < num / 2;i ++){              for(int k = 0;k < i + 1;k ++){                 System.out.print(" ");             }             for(int j = 0;j < num / 2 - i;j ++){                 System.out.print("* ");             }             System.out.println();         }      } }

【注】这个问题的前提是:输入一个奇数。对于偶数则不成立,菱形的构造原因。当然,这只是一种很简单的方式,还有更加简便,更加直接的做法,在此也希望大家多多指教。有问题下方留言。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3