下面的代码显示了嵌套的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;
?>
答案 0 :(得分:3)
您应该调整算法以使用递归而不是嵌套的while循环。
答案 1 :(得分:0)
您可以使用递归函数。
答案 2 :(得分:0)
如果循环需要嵌套,那就非常有效。
正如其他人所说,递归会让你更优雅地“嵌套”彼此不同的层次,嵌套的程度可以动态控制,而不是硬编入程序 - 但如果你发现你的设计需要你要嵌套100个循环,那么你的设计几乎肯定是完全疯了。
(但是,在你给出的具体例子中根本不需要任何循环(或递归)。由于所有循环都是恒定长度,你可以预先计算结果并只回显一个常量字符串。我认为这是一个hyporthetical例子,而不是你想写的实际代码?)