java;打印菱形

你的名字 2024-03-30 13:29 175阅读 0赞

本文讲述如何用Java打印一个菱形,以及打印直角和等腰三角形的方法,

本文教程比较详细,如果想要直接学习菱形可以直接翻到本文最下方!!!

左下角三角形

(这里说的方位均是对应矩形来说)

  1. int a = 5;
  2. for (int i = 0; i < a; i++) {
  3. for (int j = 0; j < i; j++) {
  4. System.out.print("*");
  5. }
  6. System.out.println();
  7. }

这段代码将输出如下图形,,其中i<?控制输出行数,j<?控制输出列数

这里j<i,且关于j的循环嵌套在关于i的递增循环里,所以列数(也是每行的数量)会随着行数的增加而增加,最终形成一个左下角方位的三角形

e875236c4d04f196031356ad3ac369e9.png

(这里输出*号语句要用System.out.print();避免换行。最下面的 System.out.println()是起换行作用; )

右下角三角形
  1. int a = 5;
  2. for (int i = 0; i <= a; i++) {
  3. for (int k = a; k > i; k--) {
  4. System.out.print(" ");
  5. }
  6. for (int j = 0; j < i; j++) {
  7. System.out.print("*");
  8. }
  9. System.out.println();
  10. }

这段代码将输出如下图形,这里增加了一个关于k的for循环,它的作用是在原本左下角的基础上在每行输出的*号之前增加空格,注意这里输出空格同样使用System.out.print();避免换行,因为k的循环是k—的递减循环,所以从i开始递减输出空格,就会形成一盒右下角的三角形。

19db5e1cbf5aad668010c5b624624ca9.png

正等腰三角形
  1. int a = 5;
  2. for (int i = 0; i <= a; i++) {
  3. for (int k = a; k > i; k--) {
  4. System.out.print(" ");
  5. }
  6. for (int j = 0; j < 2*i-1; j++) {
  7. System.out.print("*");
  8. }
  9. System.out.println();
  10. }

这段代码将输出如下结果,观察下面的实际输出图片就会发现其实很好理解,只是将原来的右下角三角形输出的*号改为了1、3、5、7、9的奇数排列,我们可以利用规律,将控制每行数量的j改为2*i-1实现,同理利用不同公式可以控制每行的数量。

098ebf2f6d7765d561a3aaa18f1e81be.png

实际全部输出为

d522675c340a52266bc789ddd6cafbf7.png

这里我们已经解决了菱形的上半部分

左上角三角形
  1. int a =5 ;
  2. for (int i = 0; i < a; i++) {
  3. for (int j = a; j > i; j--) {
  4. System.out.print("*");
  5. }
  6. System.out.println();
  7. }

这段代码将输出如下结果,左上角就是倒过来打印左下角三角形,所以只需要让每行的*号递减即可,所以只用改变关于j的循环就可,让其初始值为最大,并将迭代器改为j—就可以实现此效果

d8004bcf6d469d62fd4fe87b11da91b8.png

右上角三角形
  1. int len =5 ;
  2. for (int i = 0; i < len; i++) {
  3. for (int k = 0; k < i; k++) {
  4. System.out.print(" ");
  5. }
  6. for (int j = len; j > i; j--) {
  7. System.out.print("*");
  8. }
  9. System.out.println();
  10. }

这段代码讲输出如下结果,这与左下三角和右下三角的本质相似,就是在输出的*号前面增加空格,不过这里是倒叙输出,那么相应输出空格的程序也要反过来。

495d1e55fb404d74ea3a3f998fa20e21.png

倒等腰三角形

  1. int a =5 ;
  2. for (int i = a; i > 0; i--) {
  3. for (int k = a; k >= i; k--) {
  4. System.out.print(" ");
  5. }
  6. for (int j = 2*i-1; j > 0; j--) {
  7. System.out.print("*");
  8. }
  9. System.out.println();
  10. }

这段代码将输出如下结果,对比全部输出内容,可以看到原理与正等腰三角类似,只是颠倒输出顺序,就不过多赘述这个问题了。

0940398ccc2aa702c762f5dc119fedd7.png

5a2a321372e6974d2f7e5c7bc176aec6.png

菱形

实际上菱形就是一正一反两个三角形拼接而成,拆解过后,我们就知道可以通过输出正反等腰三角形就可以组成菱形。

  1. int a = 5;
  2. //正等腰三角形
  3. for (int i = 0; i < a; i++) {
  4. for (int l = a; l > i; l--) {
  5. System.out.print(" ");
  6. }
  7. for (int j = 0; j < 2*i-1; j++) {
  8. System.out.print("*");
  9. }
  10. System.out.println();
  11. }
  12. //倒等腰三角形
  13. for (int i = a-1; i > 0; i--) {
  14. for (int k = a; k >= i; k--) {
  15. System.out.print(" ");
  16. }
  17. for (int j = 2*i-3; j > 0; j--) {
  18. System.out.print("*");
  19. }
  20. System.out.println();
  21. }

这段代码将输出如下结果,两个三角形输出的原理上面有详细解析,这里讲需要注意的地方,

  1. 输出下面的三角形的时候要将行数(即i的初始值)减去1,因为菱形中间的转折线要比上下两边都长,我们已经使用了上面的最长边,下面的三角形就应该省略,减去1后在开始(也可以让上面减少一次输出)。

2.因为行数减1了,所以对应的输出数量也要减掉,因为每行是增加2个,所以每一行输出的数量都应该额外减去2,所以j的初始值应该是2i-3;

278e0c7512c0028180411cb61ab76938.png

这就是利用java输出一个菱形的方法,希望对大家有所帮助
感谢阅读!!!

发表评论

表情:
评论列表 (有 0 条评论,175人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java打印菱形

    本文讲述如何用Java打印一个菱形,以及打印直角和等腰三角形的方法, 本文教程比较详细,如果想要直接学习菱形可以直接翻到本文最下方!!! 左下角三角形 (这里

    相关 Java打印实心菱形,空心菱形

    我们用\号来填充菱形 首先,要想打印出菱形,我们先要对菱形有点认知,首先,菱形是四边相等的图形,只要四边相等,就是菱形,我们这里只说明竖着打印实心菱形和空心菱形。 实心菱形

    相关 打印菱形

    题目要求:   【题型一】打印实心零星(无间隙) 样例输出:                    ![70][] 像这样重复输出一种符号或者具有某种可描述的关系的形