PHP嵌套for循环如何实现空心矩形星号图案打印输出
问题修正方案
你原有代码的核心问题有两个:
- 额外多写了一套嵌套循环,且第二套循环内外层都使用
$i作为计数变量,存在变量名冲突、逻辑冗余的问题 - 内层循环没有做位置判断,所有位置都直接输出
*,因此只能得到实心矩形
实现逻辑
11行11列的空心矩形只需要一套双层循环即可实现,判断规则非常明确:
- 若当前行为第一行(行索引为0)或最后一行(行索引为10),整行所有位置都输出
* - 若当前行为中间行,仅当当前列为第一列(列索引为0)或最后一列(列索引为10)时输出
*,其余位置输出空格 - 注意:web页面中连续普通空格会被浏览器折叠为1个,因此要使用
作为空格占位才能保证排版对齐;如果是命令行环境运行,直接输出普通空格即可
修改后完整代码
<?php include('includes/header.php'); ?> <div class="middlecontainer"> <?php // 行、列计数范围0-10,共11个单位长度 for ($i = 0; $i <= 10; $i++) { for ($j = 0; $j <= 10; $j++) { // 命中边框规则就输出*,否则输出空格占位 if ($i == 0 || $i == 10 || $j == 0 || $j == 10) { echo '*'; } else { echo ' '; } } echo '<br />'; } ?> </div> <?php include('includes/footer.php'); ?>
运行上述代码就能得到你预期的空心矩形效果。
内容的提问来源于stack exchange,提问作者Fake
相关产品推荐
相关产品推荐

