首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 迴圈實戰練習:金字塔圖形列印(半金字塔、實心、空心)

     編輯:PHP 綜合知識

巢狀迴圈列印幾何圖形是經典程式訓練,能深度鍛鍊迴圈控制、空間想像與邏輯分解能力。本文提供三種金字塔變體的完整實現。

例 1:左對齊半金字塔

<?php
for ($i = 0; $i <= 5; $i++) {
    for ($t = 0; $t < $i; $t++) {
        echo '*';
    }
    echo '<br />';
}
?>

半金字塔輸出結果

例 2:置中實心金字塔

規律分析(以 5 層為例):

層數 i空格數星號數公式
141空格=5-i, 星號=(i-1)×2+1
233
325
417
509
<?php
for ($i = 1; $i <= 5; $i++) {
    // 列印前置空格
    for ($k = 1; $k <= 5 - $i; $k++) {
        echo "&nbsp;"; // HTML 空格
    }
    // 列印星號
    for ($j = 1; $j <= ($i - 1) * 2 + 1; $j++) {
        echo '*';
    }
    echo '<br />';
}
?>

實心金字塔輸出結果

例 3:置中空心金字塔

邏輯:首層、末層全星號;中間層僅首尾列印星號,中間填空格。

<?php
$n = 10;
for ($i = 1; $i <= $n; $i++) {
    // 前置空格
    for ($k = 1; $k <= $n - $i; $k++) {
        echo "&nbsp;";
    }
    // 星號/空格判斷
    for ($j = 1; $j <= ($i - 1) * 2 + 1; $j++) {
        if ($i == 1 || $i == $n) {
            echo '*'; // 首尾層全星號
        } else {
            if ($j == 1 || $j == ($i - 1) * 2 + 1) {
                echo '*'; // 首尾位置星號
            } else {
                echo "&nbsp;"; // 中間空格
            }
        }
    }
    echo '<br />';
}
?>

空心金字塔輸出結果

核心技巧總結

  1. 外層控制行數:$i = 1 到 $n
  2. 第一內層列印前置空格:遞減 $n - $i
  3. 第二內層列印內容:星號數 2×$i - 1
  4. 條件判斷控制空心/實心:邊界 vs 內部
  5. HTML 輸出用 &nbsp; 保留空格

擴展挑戰

  • 菱形(上金字塔 + 下倒金字塔)
  • 帕斯卡三角形(數學運算結合)
  • 自定義字符/顏色/動畫效果

圖形列印看似簡單,實則考驗邏輯分解與邊界控制能力,是新手進階的必經之路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved