21xrx.com
2024-11-22 12:25:57 Friday
登录
文章检索 我的文章 写文章
如何用Java编写菱形和空心菱形
2023-06-16 11:38:51 深夜i     --     --
Java编程 菱形 空心菱形

在Java编程中,我们经常需要打印各种各样的图案,其中包括菱形和空心菱形。本文将介绍如何使用Java编写菱形和空心菱形。

菱形图案通常由奇数行组成,其中,第一行和最后一行分别是一个星号,其余每一行的星号数量都是一定的。以下是一个菱形的示例:

\begin{lstlisting}

  *

  ***

 *****

*******

*********

*******

 *****

  ***

  *

\end{lstlisting}

要打印出这样一个菱形,我们可以使用循环嵌套的方式来实现。首先,我们需要确定行数并计算每一行的星号数量。然后,根据这些信息打印出菱形。

以下是用Java编写一个菱形的示例代码:

\begin{lstlisting}

int rows = 5;

int stars = 1;

int spaces = rows - 1;

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

  for (int j = 1; j <= spaces; j++) {

    System.out.print(" ");

  }

  for (int j = 1; j <= stars; j++) {

    System.out.print("*");

  }

  System.out.println();

  if (i < rows) {

    spaces--;

    stars += 2;

  } else {

    spaces++;

    stars -= 2;

  }

}

\end{lstlisting}

该代码使用了两个循环来分别控制行数和打印星号和空格。在每行结束后,我们需要根据要打印的行数来调整星号和空格的数量。

另外,要打印一个空心菱形,我们只需要在菱形的基础上稍作修改即可。我们可以在打印星号时,只打印第一行和最后一行的星号,以及每个菱形的两侧。以下是一个空心菱形的示例:

\begin{lstlisting}

  *

  * *

 *  *

*   *

*    *

*   *

 *  *

  * *

  *

\end{lstlisting}

要打印出空心菱形,我们需要在上面的代码中加入一些额外的判断。以下是一个用Java编写空心菱形的示例代码:

\begin{lstlisting}

int rows = 5;

int stars = 1;

int spaces = rows - 1;

int midRow = (rows + 1) / 2;

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

  for (int j = 1; j <= spaces; j++) {

    System.out.print(" ");

  }

  for (int j = 1; j <= stars; j++) {

    if (j == 1 || j == stars || i == 1 || i == rows) {

      System.out.print("*");

    } else {

      System.out.print(" ");

    }

  }

  System.out.println();

  if (i < rows) {

    if (i < midRow) {

      spaces--;

      stars += 2;

    } else {

      spaces++;

      stars -= 2;

    }

  }

}

\end{lstlisting}

该代码在打印星号时,额外判断了是否位于空心部分。在每行结束后,我们还需要根据要打印的行数来调整星号和空格的数量。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复