Java:控制台打印菱形 |
您所在的位置:网站首页 › java中怎么打印菱形 › Java:控制台打印菱形 |
编写程序,实现:在控制台输入一个奇数,打印相应行数的菱形。
例:输入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 |