0

私は初心者向けの本で 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、奇数」と表示されている 2 つの行を含む出力を受け取ります。$count の値を 0 に変更してみましたが、この演習では "$i <= $count" を使用しているため意味がありません。正しい出力でテーブルを完成させるためにコードが機能していないのはどうですか? お読みいただきありがとうございます。

4

2 に答える 2

0

html生成をループ内に配置する必要があり、反復ごとに1行だけを出力する必要があります

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

}
于 2013-02-20T23:39:16.947 に答える
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
}

?>
于 2013-02-20T23:35:16.140 に答える