PHP講座#5

今回の記事もPHP講座です!プログラムをたくさん書いて理解を深めてくださいね。
 それでは今回も張り切っていきましょう!

前回の復習

 前回の記事では算術演算子と文字列演算子について勉強しました。

前回の練習問題の解答

1問目

 岩ちょこ(22歳)には19歳との14歳の弟がいます。この3人の年齢の合計を求めてください。



解答

<?php
$age_a = 22;
$age_b = 19;
$age_c = 14;
echo $age_a + $age_b + $age_c;
echo "<br>";
?>

2問目

 このプログラムはどのような値を出力するでしょうか。考えた後、実際に試してみてください。

<?php
$num_a = 7;
$num_b = 4;
$num_c = 5;
echo ($num_a - $num_b) ** $num_c;
?>



解答
243
 算術演算子の優先度を変えるためには、括弧を使うことで実装できます。

3問目

 次の数字は、5人の生徒が数学のテストの点数です。

17, 18, 43, 76, 97
 この5人の数学のテストの平均点を求めるプログラムを書いてください。



解答

<?php
$total = 17;
$total += 18;
$total += 43;
$total += 76;
$total += 97;
$average = total / 5.0;
echo $average. "<br>";
?>

 "/"の演算子を使うときに、片方もしくは両方の値が小数である場合、答えも小数になります。

今回の学習内容

 今回は条件分岐について勉強していきましょう。この部分はプログラミング初学者にとっては分かりづらいようなので、いつも以上に説明を細かくしていきます。
 
 条件分岐というのは、条件が成り立っている時のみに処理を行うようにする文法のことで、この条件分岐と繰り返しを覚えることで、理屈上はどんな複雑なコードでも書けることになります。なので、この条件分岐という部分はプログラミングを習得する上で避けては通れないところになっています。ε=(・д・`*)
 ということで一歩ずつ丁寧に見ていきましょう!\\\\ ٩( 'ω' )و ////

 条件分岐というものを簡単に理解するために、日常生活のもので置き換えてイメージを作りましょう。

(例)
 今日は雨が降っているとします。学校に行かなければならないあなたは、傘をさして(カッパを着て)学校に行きます。
 次の日、雨は上がり晴れになりました。あなたは学校に行くときに傘をささずに行くでしょう。
 このように、日常生活でも、ある状態に応じて対応を変えることってありますよね?
 条件分岐というのは、こういう状態の時にはこの処理を、ああいう状態の時はあの処理をと、状態(条件が成り立っているか)に応じて処理を変えることができる構文なのです。
 実際にプログラムを書いて試してみましょう。

<?php
$age = 15; //15の部分を24とかにして試してみてください
if($age < 20) {
  echo "未成年です<br>";
}
?>

$age = 15;の場合

未成年です

$age = 24;の場合


 このように変数の中身が変えただけのソースコードなのに、出力があるものと出力がないものができました。これは変数の値によって処理を分けることができることを表しています。
 それでは上記のソースコードを見ていきましょう。

 if文を使うことで条件に応じた処理ができるようになっています。
 if文の基本形はこんな感じです。

if(条件式) {
 条件式が成り立っている時の処理を書く
}
 このif文について理解できれば上記のソースコードが読めるようになるはずなので、if文の構文を重点的に見ていきましょう。

if($age < 20) {
 echo "未成年です<br>";
}

 条件式というのは"(" と ")" で囲まれた部分のことであり、ここの条件式が成り立っている場合*1、if(条件式)の後ろにある"{" "}"の中の処理を行います。今回のソースコードでは、$ageという変数に15という値が入っているので、"$age < 20"という条件式が成り立っています。
 条件式が成り立っているので、ifの後ろの"{" "}" の中の処理が行われます。
 一方、$age = 24;と書いた場合のソースコードでは、条件式の部分が成り立たなくなるため、if(条件式)の後ろにある"{" "}"の中の処理は行われません。

 このように、if文を使うことで、条件が成り立った時のみ処理を実行するプログラムが実装できるようになります。

 それでは、条件が成り立った時だけではなく、条件が成り立たっていない時にも処理を行いたい場合はどうすればいいのでしょうか?
 ここで登場するのがif-else文です。if-else文の基本形はこんな感じです。

if(条件式) {
 ifの条件式が成り立っている時の処理
} else {
 ifの条件式に当てはまっていない時の処理
}

試しにソースコードを見てみましょう。

<?php
$score = 65;
if($score < 60) {
  echo "落単です<br>";
} else {
  echo "合格です<br>";
}
?>

合格です

 $scoreの値が60未満ならifの後ろの条件式が成り立っているので、if(条件式)の後ろにある"{" "}"の中の処理を行います。一方で$scoreの値が60以上ならif(条件式)の後ろにある"{" "}"の中の処理を飛ばして、elseの後ろにある"{" "}"の中の処理を行います。

 また、条件によって3つ以上に処理を分岐させたい場合には、if-elseif-else文を用います。if-elseif-else文の基本形はこんな感じです。

if(条件式) {
 ifの条件式が成り立っている時の処理
} elseif(条件式) {
 ifの条件式が成り立っていない かつ elseifの条件式が成り立っている時の処理
} else {
 上記の条件式に当てはまっていない時の処理
}


 条件分岐は構文の形を覚えてたくさん書くことが重要になってくるので、手を動かして練習していきましょう。

例1)天気判定プログラム

<?php
$amount_of_cloud = 1;
if($amount_of_cloud <= 1 /*$amount_of_cloud が1以下ならtrue*/) { 
  echo "快晴です<br>";
} elseif($amount_of_cloud <= 8) {
  echo "晴れです<br>";
} else {
  echo "曇りです<br>";
}
?>

快晴です


例2)成績評価プログラム

<?php
$score = 80;
if($score < 60) { 
  echo "D<br>";
} elseif($score < 70) {
  echo "C<br>";
} elseif($score < 80) {
  echo "B<br>";
}  elseif($score < 90) {
  echo "A<br>";
} else {
  echo "AA<br>";
}
?>

A
 このように、elseif( ) { }は複数入れることもできる。

例3)入場料の計算プログラム

<?php
$member = 3;
$age = 30;
if($age < 6) { 
  $fee = $member * 250;
} elseif($age < 18) {
  $fee = $member * 500;
} else {
  $fee = $member * 700;
}
echo $fee."円<br>";
?>

2100円

 条件式の書き方は次回の記事で詳しく触れていく予定です。上でも述べていますが、条件分岐を習得する近道は、構文を覚えて、とにかくたくさん書くことです。

まとめ

 
 今回の記事では条件分岐を学びました。特に条件分岐の構造について重点的に見ていきましたね。
 次回の記事では、条件分岐の条件式の書き方を学んでいきます。今回の記事を含め3つの記事に分けて条件分岐の解説をしていくので先は長いですが、1つずつ理解をしながら乗り越えていきましょう!
 

練習問題

1問目

 岩ちょこは22歳です。岩ちょこの年齢を$ageという名前の変数に入れて、条件分岐を使って二十歳以上か未成年かを判別するプログラムを書いてみてください。(出力する文字列はお任せします)

2問目

 変数$numberは一桁の整数です。この一桁の変数が3より小さい時は"small"を、6以上の時は"large"を、それ以外の時は"normal"を出力するプログラムを作成してください。

3問目

 次の数字は、5人の生徒が数学のテストの点数です。

17, 18, 43, 76, 97
 この5人の数学のテストの平均点を求めるプログラムを作成し、その平均点が50点未満なら"bad"を、70点以上なら"excellent"を、それ以外なら"good"を出力するプログラムを作成してください。


最後まで見ていただきありがとうございます。また別の記事でお会いできることを祈っております。



www.iwachoco-blog.com
www.iwachoco-blog.com


*1:trueという