初心者でも1日でPHPプログラミングを学習できる1日集中セミナー。

9.5 if-elseif-else文を使ってみよう

if-elseif-else文を使ってみよう

9.5 if-elseif-else文を使ってみよう

 前節ではif文を少し発展させた「if-else(イフ・エルス)文」について学習しました。続いて、「もし○○○ならば×××する。そうでなく●●●ならば△△△する。そのどれでもなければ□□□する。」といったように、ある条件の後にさらに条件を付けて判断を行う「if-elseif-else(イフ・エルスイフ・エルス)文」について学習していきましょう。

9.5.1 if-elseif-else文の使い方

 if-elseif-else文は最初の条件式を満たせばifブロック内の処理を行い、満たさない場合は次の条件式の判定を行います。次の条件式を満たせばelseifブロック内の処理を行い、満たさない場合はelseブロック内の処理を行うことになります。

書式:if-else if-else文

 if-elseif-else文の処理の流れをフローチャートで表すと以下の図9.5.1になります。

図 9.5.1 if-elseif-else文のフローチャート

 図9.5.1のフローチャートから確認できますが、if-elseif-else文は設定した順(上から)に判定していき、どれかの条件を満たすとそのブロック内の処理しか行いません。つまり、「どこかの条件を満たした瞬間、それ以降の判定は一切行わない」ことになりますので、条件を設定する順番にも注意が必要です。
 また基本的なif-elseif-else文は書式で示した通りですが、elseifブロックは判定したい条件がある分だけ複数書くことができます。また、どの条件にもマッチしないときの処理を行わない場合は、else文は省略できます。

◉ポイント

・ 複数の条件の結果に応じて異なる処理を行わせたい場合、if-elseif-else文を使う。
・ 複数条件は上から判定していき、どこかの条件を満たした場合それ以降の判定はスキップされる。

if-elseif-else文を利用して条件に応じた処理を行わせるプログラム

 if-elseif-else文は3つ以上分岐を行うときに用いられます。ここではif-elseif-else文を利用して、変数の値で条件を満たす場合と満たさない場合でどのような処理が行われるかをWebブラウザにメッセージを表示して確認してみましょう。

ソース・フォルダ:myproj_super_intro/ch09
ファイル名    :ifStatement3.php
アクセスURL   :http://localhost/myproj_super_intro/ch09/ifStatement3.php

➢ ifStatement3.java

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	</head>
	<body>
	<?php
		$num1 = 9;
		$num2 = 3;

		$operator = "*";
		//$operator = "/";
		//$operator = "%";

		//変数$operatorを判定し条件に応じた処理を行う
		if($operator == "*"){
			//掛け算結果を表示
			echo $num1 , $operator , $num2 , ' = ' , $num1*$num2 ;
		}
		elseif($operator == "/"){
			//割り算結果を表示
			echo $num1 , $operator , $num2 , ' = ' , $num1/$num2 ;
		}
		else{
			echo "掛け算と割り算以外の計算は行えません。";
		}
	?>
	</body>
</html>

実行結果
$operator=”*”で実行した場合(ifブロック処理)

$operator=”/”で実行した場合(elseifブロック処理)

$operator=”%”で実行した場合(elseブロック処理)

解説

 このプログラムはif-else文にelseifブロックが追加されています。変数$operatorの値が1つ目の条件式を満たさない場合、2つ目の条件式でさらに比較するようになっています。
 まずは7、8行目で、計算に使う数値2つを変数に用意しています。

   7:$num1 = 9;
   8:$num2 = 3;

 10~12行目で今回の条件判定に使う値を用意しています。ifブロックの掛け算を行いたい場合はそのままの記述、elseifブロックの割り算を行いたい場合は11行目以外をコメント化し、さらにelseブロックのその他の処理を行いたい場合は12行目以外をコメント化します。

   10:$operator = "*";
   11://$operator = "/";
   12://$operator = "%";

 14~25行目がif-elseif-else文になります。1つ目条件式は$operatorの値が「*」の場合、ifブロック内の処理を行い2つの変数の「掛け算結果」を画面に出力します。次の2つ目の条件式では$operatorの値が「/」の場合、elseifブロック内の処理を行い2つの変数の「割り算結果」を画面に出力します。どちらにも該当しない「%」の場合、elseブロック内の処理で「掛け算と割り算以外の計算は行えません。」と出力します。

   14://変数$operatorを判定し条件に応じた処理を行う
   15:if($operator == "*"){
   16:   //掛け算結果を表示
   17:   echo $num1 , $operator , $num2 , ' = ' , $num1*$num2;
   18:}
   19:elseif($operator == "/"){
   20:   //割り算結果を表示
   21:   echo $num1 , $operator , $num2 , ' = ' , $num1/$num2;
   22:}
   23:else{
   24:   echo "掛け算と割り算以外の計算は行えません。";
   25:}

図 9.5.2 if-elseif-else各ブロックを通った際のフローチャート

 今回のプログラムでは「if文+elseif文+else文」の組み合わせで条件分岐文を作成しましたが、他にも条件(足し算、引き算、余り計算を行う判定)を追加することができます。またelse文は必須ではないので省略することも可能です。

 条件分岐文は、判定したい状況に応じて「if」、「elseif」、「else」を多様に組み合わせて記述します。慣れないうちは難しく感じるかもしれませんが、「もし○○○ならば、×××する」と言った風に、まずは言葉で考えてみると分かりやすいかもしれません。

NEXT>> 9.6 論理演算子で複数の条件を組み合わせる

PHP超入門テキスト 目次

ご不明点はお問い合わせフォームからご連絡ください。

セミナー一覧

法人向けプログラミング研修

Java、PHPの社員研修|新人研修

ワードプレス講座も人気!

ワードプレス講座も人気!

PHP超入門テキスト 目次

セミナー担当講師

PHPセミナー講師紹介

主席インストラクター
早稲田大学大学院 理工学部卒業
SanJose 州立大学、コンピューター工学部卒業
アメリカのシリコンバレーでは、プログラマー・SEとして活躍
講師の詳細はこちら

投稿一覧

お知らせ

オンラインのWeb講座、開始しました!

お待たせいたしました、全国どこからでも受講可能なオンラインによるWeb講座が開始しております! こちらをご覧く …

ご予約について

神田ITスクールでは、 新型コロナウイルス感染拡大防止の為、 5月以降は定員3名で開催する予定です。 開催日程 …

PHP超入門セミナー、3月分のご予約受付中です!

”1日で学ぶ”PHP超入門セミナー!3月分のご予約を受付中です! 受講者の皆さんの理解度を確認しながら進めます …

2020年1月開催のPHP超入門セミナー、ご予約受付中です!

ただいま、神田ITスクールでは、2020年1月開催の「PHP超入門」講座のご予約を受付中です! ご好評につき、 …

年内のセミナーについて

神田ITスクールの1日セミナー、 「PHP超入門」「PHPとMySQLでWeb開発入門」ですが、 申し訳ありま …

PAGETOP
Copyright © 2015 FusionOne Co.,Ltd. All rights reserved.