PHPの演習問題
ユーザーがフォームに入力した名前と年齢に基づいて、ウェブページ上に異なるメッセージを動的に表示するプログラムを作成してください。
この演習問題では、PHPの他にHTML(およびCSS)も使用します。
- HTMLフォームを作成し、ユーザーに名前(テキストフィールド)と年齢(数値フィールド)を入力してもらいます。
- PHPスクリプトを使用して、フォームから送信されたデータを受け取ります。
- 名前が空の場合は、「名前を入力してください」というメッセージを表示します。
- 年齢が範囲外(例:0歳未満または150歳以上)の場合は、「無効な年齢です」というメッセージを表示します。
- 名前と有効な年齢が提供された場合、ユーザーの名前と「こんにちは、[名前]さん!あなたは[年齢]歳ですね。」というメッセージを表示します。
- さらに、年齢に基づいて、18歳未満なら「未成年です」、18歳以上65歳未満なら「成人です」、65歳以上なら「シニアです」という追加のメッセージを表示します。
ポイント
条件分岐 : 特定の条件に基づいて異なるコードブロックを実行するには主に以下の方法があります。
- if文 : 最も基本的な条件分岐です。指定された条件が真(true)であれば、コードブロックを実行します。偽 ( false ) の場合、コードブロックはスキップされます。
if (条件) {
// 条件が真の時に実行するコード
}Code language: JavaScript (javascript)
- else文 : if文に続けて使用し、if文の条件が偽の時に実行されるコードブロックを指定します。
if (条件) {
// 条件が真の時に実行するコード
} else {
// 条件が偽の時に実行するコード
}Code language: JavaScript (javascript)
- elseif文 : 複数の条件を順に評価する際に使用します。if文の条件が偽で、elseifの条件が真の場合に実行されます。
if (条件1) {
// 条件1が真の時に実行するコード
} elseif (条件2) {
// 条件1が偽で条件2が真の時に実行するコード
} else {
// すべての条件が偽の時に実行するコード
}Code language: PHP (php)
- switch文 : 一つの変数に対して多数の値を比較する場合に便利です。指定された変数の値に基づき、対応するcase節のコードブロックを実行します。
if (条件1) {
// 条件1が真の時に実行するコード
} elseif (条件2) {
// 条件1が偽で条件2が真の時に実行するコード
} else {
// すべての条件が偽の時に実行するコード
}Code language: PHP (php)解答と解説
( 1 ) 真偽を判定する
- 変数
$ageに任意の数値を代入します。 $ageが18以上であれば「成人です」と出力し、そうでなければ「未成年です」と出力するプログラムを書いてください。
if文を使って条件分岐を行います。$age >= 18 という条件で18歳以上かどうかを判断しています。
<?php
$age = 20; // ここに任意の年齢を代入
if ($age >= 18) {
echo "成人です";
} else {
echo "未成年です";
}
?>
Code language: HTML, XML (xml)( 2 ) 偶数か奇数か
- 変数
$numberに任意の数値を代入します。 $numberが偶数であれば「偶数です」と出力し、奇数であれば「奇数です」と出力するプログラムを書いてください。
%(剰余演算子)を使って数値が偶数か奇数かを判断しています。偶数の場合、数値を2で割った余りが0になります。
<?php
$number = 5; // ここに任意の数値を代入
if ($number % 2 == 0) {
echo "偶数です";
} else {
echo "奇数です";
}
?>
Code language: HTML, XML (xml)( 3 ) 天気に応じたメッセージ
- 変数
$weatherに文字列(’晴れ’, ‘曇り’, ‘雨’)のいずれかを代入します。 $weatherの値に応じて、適切なメッセージを出力するプログラムを書いてください。例えば、「晴れ」なら「今日は晴天です!」と出力。
このコードでは、switch文を使用しています。$weatherの値に応じて、異なるメッセージを出力するように設定されています。switch文は、特定の変数の値に基づいて複数の選択肢から実行するコードブロックを選択するために使います。case '晴れ'、case '曇り'、case '雨' はそれぞれの天気の条件に対応しており、該当する場合に特定のメッセージを出力します。どの条件にも当てはまらない場合には、default節が実行されます。
<?php
$weather = '晴れ'; // '晴れ', '曇り', '雨' のいずれかを代入
switch ($weather) {
case '晴れ':
echo "今日は晴天です!";
break;
case '曇り':
echo "今日は曇りですね。";
break;
case '雨':
echo "雨が降っています。傘を忘れずに!";
break;
default:
echo "未知の天気です。";
break;
}
?>
Code language: HTML, XML (xml)( 4 ) 成績の評価
- 変数
$scoreに0から100までの数値を代入します。 $scoreが80以上なら「優秀です!」、60以上80未満なら「良好です!」、それ未満なら「もっと頑張りましょう!」と出力するプログラムを書いてください。
このコードは$scoreの値に基づいて異なるメッセージを出力します。まず80以上かどうかをチェックし、次に60以上かどうかをチェックします。どちらの条件にも当てはまらない場合、最後のelseブロックが実行されます。
<?php
$score = 75; // ここに0から100までの数値を代入
if ($score >= 80) {
echo "優秀です!";
} elseif ($score >= 60) {
echo "良好です!";
} else {
echo "もっと頑張りましょう!";
}
?>
Code language: HTML, XML (xml)( 5 ) 複数条件の組み合わせ
- 変数
$temperatureに温度(数値)、$weatherに天気(’晴れ’, ‘曇り’, ‘雨’)を代入します。 $temperatureが30度以上で$weatherが ‘晴れ’ の場合は「熱中症に注意!」、$temperatureが0度未満で$weatherが ‘雨’ の場合は「凍結の恐れあり!」と出力するプログラムを書いてください。
ここでは&&(AND演算子)を使用して、2つの条件が同時に真であるかどうかをチェックしています。1つ目のif文は、温度が30度以上かつ天気が晴れの場合に警告を出力します。2つ目のelseif文は、温度が0度未満かつ天気が雨の場合に別の警告を出力します。
<?php
$temperature = 32; // 温度を代入
$weather = '晴れ'; // 天気を代入
if ($temperature >= 30 && $weather == '晴れ') {
echo "熱中症に注意!";
} elseif ($temperature < 0 && $weather == '雨') {
echo "凍結の恐れあり!";
}
?>
Code language: HTML, XML (xml)