-6

私は現在、初心者向けの PHP プログラミング クラスを勉強していて、解決しようとしている 1 つの課題について支援が必要です。割り当ては、ユーザーが正の整数を入力できるフォームを作成することです。次に、「for」ループを使用して、「hr」タグによって作成された水平線の量を表示します [ヒント: <hr size=1 width=50% color='black'>]。最後に、if ステートメントを使用して「モジュラス」計算を実行します。「for」ループのカウンタが偶数の場合、水平線の幅を 50% に設定します。それ以外の場合は、水平線の幅を 100% に設定します。

これまでに思いついたコードは次のとおりです。

<?php

if ($_POST) { // if the form is filled out
$integer = $_POST["pi"];

$i = $integer;

for ($i = 1; $i <= $integer; $i++) {
if ($i % 2) { // modulus operator
echo "<hr size=1 width=50% color='black'>";
} else {
echo "<hr size=1 width=100% color='red'>";
}

}
}
else { // otherwise display the form
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Enter a <i>Positive Integer</i>:
<input type="text" name="pi" size=5>
<input type="submit" value="Check"></form></p>
<?php
}
?>

まだ画像を投稿することはできませんが、サンプル出力は、入力された整数に達するまで、50% の黒の横罫線に続いて 100% の赤の横罫線になるはずです。各時間の間には、ある程度の間隔があるようです。

4

4 に答える 4

0

問題は、変数 $integer に等しい $i を割り当てていることです。したがって、それらは同じ値です。

    <?php
if ($_POST)
{ // if the form is filled out
    $integer = $_POST["pi"];
    for ($i = 1; $i <= $integer; $i++)
    {
        if ($i % 2 ===0)
        { // modulus operator
            echo "<hr size=1 width=50% color='black'>";
        }
        else
        {
            echo "<hr size=1 width=100% color='red'>";
        }
    }
}
else
{ // otherwise display the form
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Enter a <i>Positive Integer</i>:
<input type="text" name="pi" size=5>
<input type="submit" value="Check"></form></p>
<?php
}
?>
于 2013-10-10T23:00:42.050 に答える