关于使用Java中的for循环和if语句打印空心菱形的详细分析(也算是通过重新梳理一遍来加深自己的理解吧!)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于使用Java中的for循环和if语句打印空心菱形的详细分析(也算是通过重新梳理一遍来加深自己的理解吧!)相关的知识,希望对你有一定的参考价值。

啥也别说了,小二,先上代码:

技术分享图片(图一)

 如以上代码所示,由于程序的执行顺序是从左至右,由上而下的,所以当我们想要在DOS窗口打印 一个空心菱形如图二所示

技术分享图片(图二)

时:我们可以将其分成上下两部分,

图一中,我们首先创建一个Scanner对象,通过它的nextInt()方法从DOS窗口接收一个由键盘录入的int类型的数值(Scanner类的详细信息请查看JavaAPI)。然后将这个数赋值给total这个变量,即我们想要打印的空心菱形的总行数。

通过total,分别给定上半部分的行数half和下半部分的行数halfMore。

这时,我们分两部分来进行:(以total=9为例)

  上半部分:

    这个时候,上半部分的行数为3行,首先用一个外层语句来控制要打印的行数,如图一中的⑴行的语句。

    这个循环的内部内容:

      我们每一次循环即在从左至右,由上而下的打印顺序下每一行要依次打印些什么!

      在打印的过程中涉及三个主要要素:行数、空格数、星号数;

                一个次要要素:换行。

      首先,因为我们让外层循环控制的是“行数”,所以,我们要分别分析空格数和行数、星号数和行数之间的联系:

        左边空格数和行数:

          第n行    左边空格数an

             1      4

           2      3

           3      2

           4      1

        可以看出,在行数呈等差递增的时候,左边空格数是呈等差递减的。

        即:a1 = 4;

          a2 = 3;

          a3 = 2;

          a4 = 1; 由等差数列的通项公式:an = a1 + (n-1)*d 得:an = 3 + (-1)(n-1) = 3 - n + 1 。

                               也就是:左边空格数 = 行数 - 第几行 + 1 。

          用for循环打印就如图一中的⑵行的代码。

        左边的空格打印好了后紧接着就是打印一个星号,再打印中间空格数:

        中间空格数和行数:

          第n行    中间空格数an

           1       0

           2       1

           3       3

           4       5

        同求左边空格的做法大致一样,稍微不同的是,除了首项外其余项呈等差递增。

        由于我们采用的是for循环,循环初始化条件为1,所以当我们的循环条件为负数时,打印的次数也是0次。

        于是我们可以将首项置为-1,则有: an = -1 + (n-1)* 2 = 2 * n - 3 。这就有了图一中的⑶行的代码。

        ⑷行的判断语句是用来打印除了第一行之外的右边的星号,最后,最外层控制行数的循环每转一次就换一次行。

  下半部分:分析思路同上半部分的,就是跟上半部分的相反打印罢了。

最后,一定要牢记,编程时:

            思路一定要时刻清晰!

         思路一定要时刻清晰!

         思路一定要时刻清晰!

 


以上是关于关于使用Java中的for循环和if语句打印空心菱形的详细分析(也算是通过重新梳理一遍来加深自己的理解吧!)的主要内容,如果未能解决你的问题,请参考以下文章

编写java程序,应用for循环打印菱形。

用java打印菱形。

java 打印空心菱形

使用for循环打印矩形和三角形菱形空心菱形

利用for循环打印实心棱形和空心棱形

for循环输出空心菱形的形状java