插件窝 干货文章 php怎么实现while循环实心菱形

php怎么实现while循环实心菱形

菱形 部分 星号 while 246    来源:    2025-03-16

在PHP中,你可以使用嵌套的while循环来打印一个实心菱形。菱形的打印可以分为两部分:上半部分和下半部分。上半部分是从顶部到中间最宽的部分,下半部分是从中间最宽的部分到底部。

以下是一个实现实心菱形的PHP代码示例:

<?php
// 定义菱形的高度(必须是奇数)
$height = 7;

// 上半部分
$i = 1;
while ($i <= $height) {
    // 打印空格
    $j = 1;
    while ($j <= ($height - $i) / 2) {
        echo " ";
        $j++;
    }

    // 打印星号
    $j = 1;
    while ($j <= $i) {
        echo "*";
        $j++;
    }

    // 换行
    echo "\n";
    $i += 2;
}

// 下半部分
$i = $height - 2;
while ($i >= 1) {
    // 打印空格
    $j = 1;
    while ($j <= ($height - $i) / 2) {
        echo " ";
        $j++;
    }

    // 打印星号
    $j = 1;
    while ($j <= $i) {
        echo "*";
        $j++;
    }

    // 换行
    echo "\n";
    $i -= 2;
}
?>

代码解释:

  1. 定义菱形的高度$height变量定义了菱形的高度。注意,高度必须是奇数,否则菱形的形状会不对称。

  2. 上半部分

    • 外层while循环控制行数,从1开始,每次增加2,直到达到菱形的高度。
    • 内层第一个while循环打印空格,确保星号居中。
    • 内层第二个while循环打印星号,形成菱形的上半部分。
  3. 下半部分

    • 外层while循环控制行数,从$height - 2开始,每次减少2,直到达到1。
    • 内层第一个while循环打印空格,确保星号居中。
    • 内层第二个while循环打印星号,形成菱形的下半部分。

输出结果:

假设$height = 7,输出结果如下:

   *
  ***
 *****
*******
 *****
  ***
   *

你可以通过调整$height的值来改变菱形的大小,但请确保它是一个奇数。