6-2 ループ処理 KEYWORD ・ break break と continue ループ中の break せる ) ことができます。 ループ処理中に break を使うことで、処理の途中でループから抜ける ( 終了さ while( く条件 > ) { break; (break) 」と記述しました。このプログラムの実行結果は以下のようになります。 while ループ中に、 if 文で「変数 a の値が 5 以上になったらループを抜ける $ 十十一 break; 土 f ( 5 く $a){ echo ーですく / p ゾ echO $a; echo '<P > 変数 a の値は while()a く 1 の { く ?php ださい。 どの場合、 break はループを抜ける条件とともに使用します。以下の例を見てく ループ処理中に break があると、処理の途中でループが終了するため、ほとん
7 62 第 6 章制御構文 if()a / 5 echO if()a / 5 echo } else echo '<P>a / 5 は 3 であるく / > I<P>a / 5 は 4 であるく / p > '<P > それ以外の場合く / p ・ elseif のときと同様、 if ~ else を使うよりも switch 文を使用したほうが可読性 が高い場合もありますので、適材適所で利用するようにしましよう。 break の省略 switch 文中に使用する各 case 文での break という記述は「 break に到達した らプロックを抜ける」という意味になります。つまり case 文の中に登場する break の記述はその時点で switch 文の処理を終わりにすることになります。 switch ($value) { break; default : break; 「 case x 」の処理を行ったら「 switch 文を抜ける」 という意味の b て ea case 文の中の break を取り除くと、次の case に処理が移り、 break が現れるま ここで該当すると 条件を無視して b て eak まで実行する break; break; echo I<P > その他く / default : echO I<P > ここは 52 く / p ゾ case 52 : ech0 '<P > ここは 51 く / case 51 : echo I<P > ここは 50 < / p case 50 : switch()a / 2 ) { $a = 100 ー く ?php で case 文を実行し続けます。
条件分岐 この例での実行結果は次のようになります。 図 0-11 b 「 eak を使ったサンプル ttp: ー test. ph ー Wi ws lhtemet Exporer 、肄′ ロ h : 川侊 t / t し p ~ ↓ナス Livesearch こは 52 こは 51 こは 50 ローカルイントラネットー保嚢モード : 有効 6-1 気 100 % マ KEYWORD ・割り込み このように、最初にヒットした case 文から break の登場するまでは条件の評 いでもよくなります。そもそも case 文を使えば ( default の記述も含む ) 「すべて」 上記のように記述することで「それ以外の場合」に該当する処理は記述しな break; echO I<P>a / b は 60 く / P > case 60 : break; echO I<P>a / b は 50 く / p > case 50 : switch()a / (b) { く ?php 合に使用します。 default は省略することができます。 switch における default は case 文で指定された値のどれにもマッチしない場 default の省略 break を記述するという習慣を身につけておくのがよいでしよう。 処理が行われる可能性がありますので、普通の使い方をするときは case 文には しかし、 break の「記述し忘れ」や「 break の消し忘れ」などにより、間違った を表すために使います。 ずに、「ある条件の場合は、処理の途中から実行する」といった処理の割り込み 価を行わすに実行し続けることができます。ただし通常は上記のようには使わ
第 6 章制御構文 図 0-17 break でループを抜ける h p : ″ to こ引 st/test.ph - 輛 0W3 n ロ http://localhost/test.php 第 x しⅳ 2 a 「 0 。朝をペジマ 変数 a の値は 6 てす 変数 a の値は 5 てす 変数 a の値は 4 てす 変数 a の値は 3 てす 変数 a の値は 2 てす 変数 a の値は 1 てす 変数 a の値は 0 てす ローカルイントラネットー保護モード : 有効 気 18 % マ KEYWORD ・ continue 変数 a の値が 5 以上になった場合に wh ⅱ e 処理を抜けてプログラムが終了し ていることが分かると思います。このように break は意図的にループ処理を抜け る際に利用します。 break はループ処理を行う while 、 do ~ while 、 for 、 foreach のどれでも利用す continue while ( く条件 > ) { を実行することができます。 ループ中に ループ中の continue ることができます。 を使うことで、ループの処理の先頭に戻りふたたび処理 while()a く 10 ) { く ?php 処理を実行するため、再度ループを実行したい場合に c 。 ntinue を使います。 ループ中 continue があると、その con ⅱ nue からループの先頭へ戻りふたたび
・ 7 / 0 第 6 章制御構文 ループ処理 ・決まった処理を繰り返すことを「ループ処理」という ・多くの言語にはループ処理のための記述法がある ・ while 文は条件が真の場合に記述された処理をループする ・繰り返しによって条件が偽となるように処理を書く必要がある ・ break を使うことで、処理の途中でループから抜けられる ・ continue 文が実行されるとループの先頭に処理が戻る ・ break と continue はどのループ処理でも利用可能 ・ d0 ~ wh ⅱ e 文は wh ⅱ e 文と同様に使えるが、条件評価の順が異なる ・条件が処理のあとに評価されるため、かならず 1 度は処理が実行される ・ fo 「文は「ループカウンタの初期化」「ループ条件」「ループカウンタの更新」 をまとめて記述できる ・ for 文は wh ⅱ e 文に書き換えることが可能 ・配列に対する繰り返し処理は foreach 文で記述できる ・配列の要素に変数でアクセスできるほか、キーにもアクセスできる 学習のポイント 繰り返し処理の基本 while 文 break と continue dO ~ while 文 for 文 foreach 文 K EYWO R D ループ処理・・・一定の条件で繰り返し実行される処理 カウンタ・・・ループを制御するための変数。多くの場合は数が代入される
・ 760 第 6 章 制御構文 if()a % 3 echo '<P > 変数 a は 3 の倍数く / > } else if()a % 5 echo '<P > 変数 a は 5 の倍数く / p > リ } else if()a % 7 echo '<P > 変数 a は 7 の倍数く / p ゾ・ } else { if()a % 12 echo '<P > 変数 a は 12 の倍数く / > リ } else echo '<P > それ以外に該当しましたく / ゾ・ この例から見ても分かるように、 elseif は else 処理中に if を記述しているだけ ですが、ネストがとても深く ( ネストが多く ) 読みづらいコードとなってしまう 場合もあります。 elseif と else ~ if の組み合せは、コードの読みやすさなども考 慮に入れながら、適材適所で行うようにするとよいでしよう switch 文 switch 文は複数の条件を使うことができる条件分岐の構文です。指定した値 を複数の条件で評価し、一致した処理を実行します。 switch 文は値を指定する switch と、値を比較する case 文、一致しない場合の default 文から成ります。 switch(fl) { case 式の値か値ある場合の処理 式の値か値おある場合の処理 いすれにも一致しない場合の処理 break; break; default : break;
7 6 7 ・ 6-1 条件分岐 実際の使用例は次を見てください。 <?php $a = 20; switch()a / 5 ) { 3 : echo '<P>a / 5 は 3 であるく / ゾ break; 4 : echo '<P>a / 5 は 4 であるく / ゾ break; default: echo '<P > それ以外の場合く / P>' $a を「 5 」で割る処理が実行され、まずその結果が「 3 」だった場合の処理が 己述されています。さらに「 4 」だった場合の処理が記述され、最後にそれ以外 の場合があります。この場合の処理結果は次のようになります。 図 0-10 case 文の利用 http: ー test.php - Wi OWS 新ぎ n Ex ht 中 : 川酣 rost なし p ャス Live 55 「 ~ ~ - →み 0 ページァ a / 5 は 4 てある 一三ロ 鱆ローカルイントラネットい保護モード : 有効 switch 文は、指定された値を複数の値に対して一致させる記述ができるため、 比較したい値が多い場合にとても便利です。 switch 文の展開 この switch 文も elseif 同様に展開させることができます。先の例の switch 文 は、次のような if ~ else 文に変換できます。 <?php $a = 2
目 次 5 ー 3 5-2 予約語 あらかじめ用意されている変数 配列 連想配列の要素追加 データの代入 連想配列へのアクセス 連想配列の作成 連想配列とは 連想配列 配列の演算子 要素の追加 データの代入 配列へのアクセス 配列の作成 配列とは 定義済みの定数 練習問題 第 6 章制御構文 6 ー 1 6-2 条件分岐 条件分岐の仕組み if 文 else 文 elseif 文 switch 文 条件分岐の注意点 ループ処理 繰り返し処理の基本 while 文 break と continue do ~ while 文 for 文 foreach 文 練習問題 第 7 章関数 7-1 外部ファイルの読み込み include 文と require 文 include once 文と require— once 文 128 129 130 132 133 133 134 136 ・ 137 139 141 141 142 143 143 144 148 149 151 152 152 155 157 160 164 170 173 175 177 179 181 183 185 185 188
この章のテーマ 配列をマスターすると PHP の基本的なデータの取り扱いができるようになりま す。続いて本章ではプログラムの流れを制御する制御構文について説明しましょ う。制御構文までを使えるようになると、ひととおりのプログラムが記述できるよう になります。 制御構文には条件によってプログラムの動作を切り替える「条件分岐」と処理を繰 り返す「ループ処理」があります。制御構文には単純な表記の構文から、よく使う バターンを簡単に記述できる記述法までいろいろな種類があります。それそれの 仕組みを理解してうまく使いこなすようにしましよう。 6-1 条件分岐 「条件分岐の仕組み "if 文 E1eIse 文 UeIseif 文 switch 文 、条件分岐の注意点 6-2 ループ処理 繰り返し処理の基本 AwhiIe 文 break と continue EdO ~ while 文 Zfor 文 foreach 文 この章を学習すると以下の知識をマスターできます。 ・条件によって処理を切り替えられる条件分岐 ・条件分岐を書く場合に注意すべき点 一定の条件で処理を繰り返すループ処理 ・各種ループ構文と配列用のループ構文の使い方
757 ・ 6-1 条件分岐 6- 1 条件分岐 if 文 ・「〇〇ならば xx する」という処理を表現するには if 文を用いる ・ if 文の条件には真偽値が用いられる ・ if 文の中で if 文を用いることもできる ( ネスト ) ・ and や or によってを条件を組み合わせられる ・ else 文では if 文の条件が成立しない場合の処理を記述できる ・ if 文に続けて条件分岐を記述する場合に elseif 文を利用する ・ elseif 文は単純な if 文に書き換え可能 (elseif の展開 ) ・複数の分岐条件がある場合は switch 文を用いる ・ switch 文は複数の if 文に書き換えが可能 (switch の展開 ) ・ break を用いることで switch 文から抜けることができる ・すべての条件に当てはまらない場合は defau はの処理が実行される ・条件分岐を記述する際は、プロックの省略、型の自動変換、演算子の優先順 位などに注意する 学習のポイント else 文 elseif 文 switch 文 条件分岐の注意点 KEYWORD 条件分岐・・・ある値が「真」か「偽」によって処理を振り分ける処理。 if 文、 elseif 文、 switch 文などが利用できる