2015-07-21 306 views
0

我想尝试一下,在PHP中使用我的名字创建一个钻石图案。 我的代码是:为什么for循环没有执行?

<?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循环是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循环的迹象。

Can任何机构都能告诉我问题是什么?

任何帮助,将不胜感激。

CHEERS !!!

+0

你怎么知道它不执行? –

+0

原因'当我在第二个循环中设置断点时,IDE不执行该循环的内部部分! – Ikari

+1

因为你的情况不满足。即'$ j <= 1;' – Rikesh

回答

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

看看这个代码,$j等于$len, $len大于1,你创建循环$j <= 1 - 所以直到$j小于或等于大于1 $j较高如此循环的不执行

所以再次尝试设置$j = $len; $j >= 1; $j--

+0

谢谢它真的帮助我理解了很多! – Ikari

3

尝试改变:

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

去:

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