是否有更有效的方法来编写嵌套循环?

时间:2010-05-22 18:37:20

标签: php while-loop nested-loops

下面的代码显示了嵌套的while循环,但它不是非常有效。假设我想扩展代码以包含100个嵌套的while循环。有没有更好的方法来完成这项任务?

<?php 

$count = 1;

 $num = 1;
 $options=3;
 while ( $num <=$options ) 
    { 
echo "(".$num . ") "; 

    $num1 = 1; 
    $options1=3;
    while ( $num1 <=$options1 ) 
    { 
    echo "*".$num1 . "* "; 

        $num2 = 1; 
        $options2=3;
        while ( $num2 <=$options2 ) 
        { 
        echo "@".$num2 . "@ ";  

            $num3 = 1; 
            $options3=3;
            while ( $num3 <=$options3 ) 
            { 
            echo $num3 . " ";   
            $num3++; 
            $count++;
            }

        echo "<br />";
        $num2++; 
        }

    echo "<br />";
    $num1++; 
    }

echo "<br />";
$num++; 
} 
  echo $count;
 ?>

3 个答案:

答案 0 :(得分:3)

您应该调整算法以使用递归而不是嵌套的while循环。

答案 1 :(得分:0)

您可以使用递归函数。

答案 2 :(得分:0)

如果循环需要嵌套,那就非常有效。

正如其他人所说,递归会让你更优雅地“嵌套”彼此不同的层次,嵌套的程度可以动态控制,而不是硬编入程序 - 但如果你发现你的设计需要你要嵌套100个循环,那么你的设计几乎肯定是完全疯了。

(但是,在你给出的具体例子中根本不需要任何循环(或递归)。由于所有循环都是恒定长度,你可以预先计算结果并只回显一个常量字符串。我认为这是一个hyporthetical例子,而不是你想写的实际代码?)