加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在PHP中打印星形,它取一个值并打印这样的东西

发布时间:2020-12-13 21:52:20 所属栏目:PHP教程 来源:网络整理
导读:如果输入为3则输出应为 *********** 同样,如果接受的值是5,那么输出应该是 ***************************** 这就是我所做的,但它不正确 ?phpecho "pre";for ($row = 1; $row = 5; $row++){ for ($col = 1; $col = 6 - $row; $col++) { echo '*'; } echo "n";
如果输入为3则输出应为

***
**
*
**
***

同样,如果接受的值是5,那么输出应该是

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

这就是我所做的,但它不正确

<?php
echo "<pre>";
for ($row = 1; $row <= 5; $row++)
{
    for ($col = 1; $col <= 6 - $row; $col++)
    {
        echo '*';
    }

    echo "n";
}
for ($row = 1; $row <= 5; $row++)
{
    for ($col = 1; $col <= $row; $col++)
    {
        echo '*';
    }

    echo "n";
}
?>

解决方法

嵌套的for循环有什么用?

$lineBreak = "rn"; // This may need to be <br /> if carriage returns don't show in <pre>
$maxNum = 5;
echo '<pre>';
for ($i = $maxNum; $i > 0; $i--) {
    echo str_repeat('*',$i) . $lineBreak;
}
for ($i = 2; $i <= $maxNum; $i++) {
    echo str_repeat('*',$i) . $lineBreak;
}
echo '</pre>';

为了好玩,要消除一个for循环:

$lineBreak = "rn";
$maxNum = 5;
$out = '*';
for ($i = 2; $i <= $maxNum; $i++) {
    $out = str_repeat('*',$i) . $lineBreak . $out . $lineBreak . str_repeat('*',$i);
}
echo '<pre>' . $out . '</pre>';

请注意,此代码对$maxNum<无效; 1. 要从用户获取值,请将$maxNum行替换为…

$maxNum = $_GET['maxNum'];

并使用scriptname.php加载页面?maxNum = 5

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读