我需要使用do while编写以下代码,而不是使用for循环,我该怎么做?
<?php
echo "<table>";
for($i=1;$i<=10;$i++)
{
echo "<tr>";
for($i2=1;$i2<=10;$i2++)
{
if(($i*$i2)%2==0)
{
echo "<td>" . $i*$i2 . "</td>";
}
else
{
echo "<td>" . $i*$i2 . "</td>";
}
}
echo "</tr>";
}
echo "</table>";
?>
答案 0 :(得分:2)
我觉得你想要它的方式循环应该是这样的:
$i = 1; // initiate condition variable
// start the loop
do {
// some code
$i++; // increment condition variable
}
while ($i <= 10); // the loop condition
所以带有do-while循环的代码应该是这样的:
echo "<table>";
$i = 1; // initiate $i to 1
// start outer loop
do {
$i2 = 1; // initiate $i2 to 1
echo "<tr>";
// start inner loop
do {
if(($i*$i2)%2==0)
{
echo "<td>" . $i*$i2 . "</td>";
}
else
{
echo "<td>" . $i*$i2 . "</td>";
}
$i2++; // increment $i2
}
while ($i2 <= 10); // inner loop condition
echo "</tr>";
$i++; // increment $i
}
while ($i <= 10); // outer loop condition
echo "</table>";
资源:http://www.php.net/manual/en/control-structures.do.while.php
答案 1 :(得分:1)
好吧,我不知道你会怎么做,但我会这样做......
<?php
echo "<table>";
$a = 1;
do
{
echo "<tr>";
$b=1;
do
{
if((($a * $b) % 2) == 0)
{
echo "<td>" .($a * $b). "</td>";
}
else
{
echo "<td>" . ($a * $b) . "</td>";
}
$b++;
} while($b<=10);
echo "</tr>";
$a++;
} while($a<=10);
echo "</table>";
?>
根据您的要求,用for/next
替换每个do/while
。
请注意,我还可以自由地将$i
和$i2
替换为$a
和$b
,因为这样更具可读性。最后但并非最不重要的是,我在这里和那里添加了一些“()”,这将避免潜在的代码问题。
修改强>
结果如下:
do / while循环背后的一般逻辑如下:
do { /* something */ } while (/* condition */);