没有在循环的html表中接收正确的输出

时间:2013-02-20 23:31:50

标签: php loops

我开始通过初学者的书学习PHP,并且在特定练习上遇到困难。以下是关于决策和循环的章节结尾处的练习文本:

  

编写一个从1到10的步数为1的脚本。对于每个数字,显示该数字是奇数还是偶数,如果数字是素数,也会显示一条消息。在HTML表格中显示此信息。

我搜索了www.php.net并在stackoverflow上查找了类似的问题,但是没有找到任何正确完成代码的内容。这是我的代码,后面是它生成的输出的描述:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Counting to ten</title>
    <link rel="stylesheet" type="text.css" href="common.css" />
    <style type="text/css">
        th { text-align: center; background-color: #999; }
        th, td ( padding: 0.6em; )
        tr.alt td { background: #ddd }
    </style>
</head>
<body>

    <h3>Counting to ten</h3>

    <table cellspacing="1" border="1" style="width: 20em; border: 1px solid #999;">
        <tr>
            <th>Number</th>
            <th>Odd/Even</th>
        </tr>

<?php

$count = 10;

$num1 = 0;
$num2 = 1;

for ( $i=2; $i <= $count; $i++ )

{
$sum = $num1 + $num2;
$num1 = $num2;
$num2 = $sum;
}

?>
    <tr <?php if ( $i % 2 == 0 ) echo ' class="alt"' ?>>
        <td><?php echo $i?></td>
        <td><?php echo "even" ?></td>
    </tr>
    <tr <?php if ( $i % 2 == 1 ) ?>>
        <td><?php echo $i?></td>
        <td><?php echo "odd" ?></td>
    </tr>
</body>
</html>

我没有收到错误。我正在接收带有表格的输出,正确的标题和格式,下面两行说“11,偶数”[到下一行]“11,奇数”。我尝试将$ count的值更改为0,这在本练习中没有意义,因为我使用的是“$ i&lt; = $ count”。我的代码怎么样不能用正确的输出完成表?感谢您的善意阅读。

2 个答案:

答案 0 :(得分:0)

您需要将输出表格的部分放在for循环中......

<?php

$count = 10;

$num1 = 0;
$num2 = 1;

for ( $i=2; $i <= $count; $i++ ){
  $sum = $num1 + $num2;
  $num1 = $num2;
  $num2 = $sum;
  ?>
    <tr <?php if ( $i % 2 == 0 ) echo ' class="alt"' ?>>
        <td><?php echo $i?></td>
        <td><?php echo "even" ?></td>
    </tr>
    <tr <?php if ( $i % 2 == 1 ) ?>>
        <td><?php echo $i?></td>
        <td><?php echo "odd" ?></td>
    </tr>
  <?php
}

?>

答案 1 :(得分:0)

你需要将html生成放在循环中,你只想每次迭代输出一行

for ( $i=2; $i <= $count; $i++ )
{
   ?>
    <tr <?php if ( $i % 2 == 0 ) echo ' class="alt"'; ?>>
        <td><?php echo $i?></td>
        <td><?php 
            if ( $i % 2 == 0 ) echo 'even';
            else echo 'odd'; # there's a shorter way to do this bit too
         ?></td>
    </tr>
  <?php

}