为什么for循环没有被执行?

时间:2015-07-21 11:16:02

标签: php for-loop

我想尝试在PHP中制作出我的名字中的钻石图案。 我的代码是:

<?php
/**
 * Created by PhpStorm.
 * User: gourab
 * Date: 20/7/15
 * Time: 10:35 PM
 */
$name = "GOURAB";
$revName = strrev($name);
$len = strlen($name);

for($i = 0; $i <= $len; $i++)
{
    echo substr($name, $i)
        . str_repeat(" ", $i)
        . str_repeat(" ", $i)
        . substr($revName, $i)
        . "\n";
}
for($j = $len; $j <= 1; $j--)
{
    echo substr($name, $j)
        . str_repeat(" ", $j)
        . str_repeat(" ", $j)
        . substr($revName, $j)
        . "\n";
}

第一个循环for($i = 0, $i <= 0; $i++)正常工作并创建钻石的第一部分。

第一部分的输出:

GOURABBARUOG
OURAB  ARUOG
URAB    RUOG
RAB      UOG
AB        OG
B          G

但第二个for循环for($j = $len; $j <= 1; $j--)根本没有被执行。我在PHPStrom中对它进行了调试,当我在第二个for循环中添加了Break Point时,它没有显示执行for循环的迹象。

任何人都可以告诉我这是什么问题吗?

任何帮助都将不胜感激。

CHEERS !!!

2 个答案:

答案 0 :(得分:3)

尝试改变:

for($j = $len; $j <= 1; $j--)

为:

for($j = $len; $j >= 1; $j--)

答案 1 :(得分:2)

for($j = $len; $j <= 1; $j--)

查看此代码,$j等于$len, $len大于1,并创建循环$j <= 1 - 所以直到$j小于或等于1 { {1}}更高,所以循环不执行

所以请再次尝试设置$j