2

下面的代码显示了嵌套的 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;
 ?>
4

3 回答 3

3

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

于 2010-05-22T18:40:18.590 回答
0

您可以使用递归函数。

于 2010-05-22T18:40:57.480 回答
0

如果需要嵌套循环,它就足够高效了。

正如其他人所说,递归将允许您更优雅地在彼此之间“嵌套”不同级别,并且嵌套级别可以动态控制而不是硬编码到您的程序中 - 但是如果您发现您的设计需要您嵌套100 个循环,那么您的设计几乎可以肯定是完全疯狂的。

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

于 2010-05-22T18:47:33.867 回答