問題
3乱数を使ってくじを引こう
この問題では、条件に応じて結果を切り替える処理の基本と、数値の扱い方を学びます。
実際にコードを書きながら、処理の流れや考え方を理解していきましょう。
PHPの問題に挑戦しよう!
問題
「乱数を使ってくじを引こう」
PHPで条件に応じて結果が変わる処理を作ってみましょう。
1等が1個、2等が3個、3等が6個、はずれが90個のくじを引いた結果を画面に表示します。
条件:乱数を使うこと
期待する画面
※実行する度に変わります
解答と解説(乱数を使ってくじを引こう)
解説
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
まず rand(1, 100) で1〜100のランダムな整数を生成します。
乱数とは、実行するたびに異なる数値が得られる仕組みのことです。
今回は全100通りの数値を等確率で発生させ、その値によって結果を振り分けています。
条件分岐には switch 文を使っています。
switch とは、ある値に対して複数の条件を上から順番に照合し、一致した処理を実行する制御文です。
if 文でも同じ処理は書けますが、条件の数が多い場合は switch の方がコードがすっきりします。
各 case には条件式を書き、一致した場合に直下の処理が実行されます。
break を書かないと次の case の処理も続けて実行されてしまうため、必ず記述しましょう。
default はどの case にも一致しなかった場合に実行される処理で、if 文の else に相当します。
今回の確率設計は、1等が1%(1のみ)・2等が3%(2〜4)・3等が6%(5〜10)・はずれが90%(11〜100)です。
数値の範囲で確率をコントロールできる点が乱数処理の応用ポイントです。
補足
rand とはRandom(ランダム)の略で、PHPで乱数を生成する組み込み関数です。
rand(最小値, 最大値) の形で使い、指定した範囲の整数をランダムに返します。
乱数はゲームやくじ・シャッフルなど、予測できない動作が必要な場面で広く使われます。
関連問題もあわせて挑戦してみましょう。
・サイコロを振ろう
・当選確率を計算しよう
・PHPの基礎から学びたい方:PHP入門講座
ポイント
PHPの乱数と条件分岐の基本(rand関数)
PHPで乱数を生成するには rand(最小値, 最大値) を使います。
実行するたびに異なる値が返るため、ランダムな処理の実装に便利です。
取得した値をもとに条件分岐を組み合わせることで、確率に応じた処理の振り分けが実現できます。
ゲームや抽選処理など、実務でもよく使われる基本的なパターンです。