カテゴリー
PHP

forとifとbreakを組み合わせて使おう

この例ではfor文とif文とbreak文を組み合わせて使う方法について説明します。
breakは、現在実行中の for, foreach, while, do-while, switchの実行を強制終了する機能を持っています。
switch の章でbreakを使用したのを覚えているでしょうか?breakは for文でも使うことが出来るのです。
では例をみてみましょう。1 for文のブロックの中にif文が入っています。
このif文の意味はもし、$iが4になったらfor文を抜けますよと言う意味です。
breakはこのように一連の流れを強制的に中止してブロックを抜けるために使われます。
$iが4になったらfor文を抜けると言うことは1は出力されないということです。
結果は以下の通りです。1 次の例をみてみましょう。
for文の入れ子の中でbreakを使うとどうなるのかを説明します。1 この例の中のforの中でbreakを使っていますが、このbreakで抜けることができるのは内側のfor文、つまり上から2つ目のforだけです。
内側のfor文の条件部分が5を超えたら、上から2つ目のforをbreakするのですが、breakした後はまた先頭の1に戻って続きを繰り返します。1 になりますが、
「2掛ける3=6」
「3掛ける2=6」
「3掛ける3=9」
「4掛ける2=8」
「4掛ける3=12」
が出力されていません。
理由はif文の中のbreakで内側のfor文を抜けているために、その下のprint文が出力されていないからです。
次の例をみてみましょう。
外側のfor文も含めてすべてのfor文を抜けたい場合どうしたらいいのかを説明します。1 2つfor文がありますが、すべてのfor文を抜けたい場合には内側のfor文の中に1と入力します。
これにより、すべてのfor文を抜けることが出来ます。
break の横の数字には入れ子になったforの構造で抜けたい階層の数を指定します。
例えばこの例のように2つのfor文を抜けたい場合には2を指定します。
「break 3; 」と書けばforの3重構造を抜けることが出来ます。
結果は以下の通りです。
1掛ける1=1
1掛ける2=2
1掛ける3=3
2掛ける1=2
2掛ける2=4

カテゴリー
PHP

for文で配列の要素を取り出そう

この章ではfor文による配列の要素の取り出し方について説明します。
では例をみてみましょう。1 for文を使って配列の要素をループさせて、1つずつ取り出すことが出来ます。
$data[$i]の$iには0から2までの数値が順番にセットされて、出力されます。1 次の例をみてみましょう。1 この例は配列の要素である整数の足し算を行っています。
11と同じ意味です。
11配列の要素の数だけfor文で取り出すには以下の通り、条件式に1のように配列の要素数を書きますが、配列の要素の数は直接数字で書く以外に便利な方法があります。1 以下のように条件式に1と、記述しますと配列に含まれる要素数を取得することが出来ます。
例えば以下のように1と、書きますと、配列の要素数である3を得ることが出来ます。1

カテゴリー
PHP

for文を入れ子にしよう

この章ではfor文の応用でfor文のネストについて説明します。
ネストとはfor文の中にfor文を入れると言うことです。
では例をみてみましょう。1 for文のネストは複雑なので順を追って説明します。
①$iに1を代入します。
②「$i<=3」の条件式を判定しますがここがTRUEなので1 が3回実行されて
1掛ける1=1
1掛ける2=2
1掛ける3=3
と出力されます。
つまり、最初は$iには1が入っているので、print文の中の$iには1が入ります。
1には1から3までが、順番に代入されます。
つまり、外側のfor文が1周するごとに、中のfor文は3周しています。1 ③次に$i++の箇所で$iに1を足し、$iは2になります。
④そして条件式の判定に入りますが、2回目のループではまだ$iは2なのでTRUEということになり、1 が3回実行されて
2掛ける1=2
2掛ける2=4
2掛ける3=6
と出力されます。
⑤次に$i++に戻り$iに1を足します。
そこで$iは3になります。
⑥そして条件式の判定に入りますが、3回目のループではまだ$iは3なので,TRUEということになり、1 が3回実行されて 
3掛ける1=3
3掛ける2=6
3掛ける3=9
と出力されます。
⑦次に$i++に戻り$iに1を足します。
そこで$iは4になります。
⑧そして条件式の判定に入りますが、$iは4で3以下ではないのでFALSEとなり、ここでループは終わりになります。1

カテゴリー
PHP

for文について知ろう

この章ではfor文について説明します。
同じような処理を何度も繰り返すプログラムを書く場合、以下のように何度も同じ処理を書くのは面倒ですし、間違いも多くなりがちです。
1そこで、何回も同じ処理を繰り返す必要があるときに、for文を使えば簡単に記述することができます。
while文は何回も同じ処理をする必要があるときに必要でしたが、for文もwhile文と同じ働きがあります。
for文の詳しい説明は例の後に行います。1 では例をみてみましょう。1 forが最初に実行される時には1から始まります。
初期値式とは条件式を判定するときの初めの変数です。
初期値式は上の例で言えば1です。
次に初期値式を元に条件式を判定してTRUEであるならば、処理文が実行されることになります。
条件式は上の例で言えば1です。
処理文が実行された後に増減式において、初期値を足したり引いたりする行為を行います。
増減式は上の例で言えば1です。
プログラムの内容によっては1のように減算子の記述もできます。
順を追って説明します。
①初めに$iに初期値1を代入します。
初期値は1でなくても2でも3でも自由に決められます。
②$i<=3の条件式を判定します。
ここがTRUEであるならば1を実行します。
$iは1で3以下なので、1を実行し1を出力します。
③それから$i++で$iに1を足し、$iは2になります。
④そしてまた条件式の判定に入り、上の3で$iは2になりましたが、まだ3以下なので1を実行し、1を出力します。
⑤それから$i++で$iに1を足し、$iは3になります。
⑥そしてまた条件式の判定に入り、上の5で$iは3になりましたが、まだ3以下なので1を実行し1を出力します。
⑦それから$i++で$iに1を足して4になります
⑧そしてまた条件式の判定に入りますが、$iは1を加えられて4になりましたので、条件式はFALSEになりループを終了します。

カテゴリー
PHP

do-while文を知ろう

この章ではdo-while 文について説明します。
do-while 文はwhile文とほとんど働きが一緒ですが、while文は条件式がFALSEであるならば1度も実行することなく終了してしまいますが、do-while文は必ず1回は処理文を実行します。
そして処理文を実行してから条件式の判定に入ります。1 では例をみてみましょう。1 順を追って説明します。
①初めに$iに初期値1を代入します。
while文と違って、初めに条件式の判定はないので1を実行して、1を出力します。
そして下の2に進みます。
②「$i++;」の箇所で$iは1を加えられますので2になります。
③そして、この段階になって初めて1の条件判定に入ります。
$iは$i++で1が足されているので2になっていますが、2はまだ4未満なのでTRUEになります。
④3番はTRUEですので、先頭に戻って1を実行して、2を出力します。
⑤「$i++;」の箇所で$iは1を加えられますので3になります。
⑥そして、1の条件判定に入ります。
$iは$i++で1が足されているので3になっていますが、3はまだ4未満なのでTRUEになります
⑦6番はTRUEですので、先頭に戻って1を実行して、3を出力します。
⑧「$i++;」の箇所で$iは1を加えられますので4になります。
⑨そして、1の条件判定に入りますが、4はすでに4未満ではないのでFALSEになり、do-while文はここで終了です。
結果は「123」です。

カテゴリー
PHP

while文を知ろう

この章ではwhile文について説明します。
何回も同じ処理をする必要があるときにwhile文を使えば簡単に記述することができます。
例えば同じような処理を何度も繰り返すプログラムを書く場合、以下のように何度も同じ処理を書くのは面倒ですし、間違いも多くなりがちです。
そこでwhileを使うと簡潔に書くことが出来ます。1 while文の基本構文は以下の通りですが、詳しい説明は例の後に行います。1 では例をみてみましょう。
1初めにwhileが実行される時に条件式がTRUEかFALSEかをチェックします。
TRUEである場合にはwhileの処理文が実行されます。
FALSEである場合には処理文は実行されません。
whileは条件式がTRUEである限り何度でも処理を実行します。
順を追って説明します。
① $iに初期値1を代入します。
while ( $i < 4)の部分の条件式をif文と同じようにTRUEかFALSEで判定します。
1はまだ4未満でTRUEですので1を実行して、1を出力します。
FALSEであるならば何も出力されません。
そして次の2に進みます。
②「$i++;」の箇所で$iは1を加えられますので2になります。
③そして、また最初の1の部分に戻ります。
上の2番で$iは1を足されているので2になっています。
そして1の条件判定に入りますが、2はまだ4未満なのでTRUEになり、1を実行し、1を出力します。
④「$i++;」の箇所で$iは1を加えられますので3になります。
⑤そして、また最初のwhile ( $i < 4 )の部分に戻ります。
上の4番で$iは1を足されているので3になっています。
そして1の条件判定に入りますが、3はまだ4未満なのでTRUEになり、1を実行し、1を出力します。
⑥「$i++;」の箇所で$iは1を加えられますので4になります。
⑦そして、また最初の1の部分に戻ります。
上の6番で$iは1を足されているので4になっています。
そして1の条件判定に入りますが、4はすでに4未満ではないのでFALSEになり、while文はここで終了です。1 もし、$i++がないとどうなると思いますか?答えは無限ループと言いまして、1の条件部分が永遠に4以下にならないので無限に繰り返しを行いますので気を付けてください。

カテゴリー
PHP

加算子,減算子について知ろう

この章では加算子,減算子について説明します。
加算子は数値を1つ増やし、減算子は数値を1つ減らす演算子です。
加算子は1減算子は1で表示します。
まだ説明していませんがfor文などの繰り返し構文等に主に使われます。
11では例をみてみましょう。11
初めに前置加算子から説明します。1「++$a」は1と同じことを意味しています。
つまり1を計算してから、左辺の$aに結果を代入して、echoで出力していますので、1の出力結果は1になります。
$aはこの時点で9に変化しているので、1の結果は1になります。
次は後置加算子について説明します
1初めに$a に代入されている8を1で出力しているので、結果は1となり、その後に$a に1を加えているので11を出力します。
つまり、後置加算子では初めに1を無視した状態で出力し、それから$aに1を加算します。
次は前置減算子について説明します。111と同じことを意味しています。
つまり1を計算してから、左辺の$aに結果を代入して、echoで出力していますので、1の出力結果は1になります。
$aはこの時点で7に変化しているので、1 の結果は1になります。
次は後置減算子について説明します。1 初めに$a に代入されている8を1で出力しているので、結果は1となり、その後に$a から1を引いているので11になります。

カテゴリー
PHP

複合演算子を知ろう

この章では複合演算子について説明します。
算術演算子」と代入演算子を複合して使用しているので、複合演算子と言います。
算術演算子は「+」などの演算子で、代入演算子は「=」です。
では例をみてみましょう。111
1
1 「$a +=3;」は1と同じ意味ですので、1の結果は8です。
「$a -= 3;」は1と同じ意味ですので、1の結果は2です。
「$a *= 3;」は1と同じ意味ですので、1の結果は15です。
「$a /= 3;」は1と同じ意味ですので、1の結果は1です。
「$cats .=”走る”;」は1と同じ意味ですので、1の結果は1です。

カテゴリー
PHP

算術演算子を知ろう

この章ではプログラム内での計算について説明します。11
算術演算子とは
「+」「-」「*」「/」「%」
のことを言います。
以下の表を参考にしてください。1 「$number1+$number2」は加算を行っているのですが、$number1には5、$number2には3が入っているので、この変数の値同士を1で足しています。
特に数値を変数に入れる必要性がないのであれば1と計算していただいても結構です。
「$number1-$number2」は減算を行っているのですが、$number1には5、$number2には3が入っているので、この変数の値同士を1で引いています。
特に数値を変数に入れる必要性がないのであれば1と計算していただいても結構です。
「$number1*$number2」は乗算を行っているのですが、$number1には5、$number2には3が入っているので、この変数の値同士を1で掛けています。
特に数値を変数に入れる必要性がないのであれば1と計算していただいても結構です。
「$number1/$number2」は除算を行っているのですが、$number1には5、$number2には3が入っているので、この変数の値同士を1で割っています。
特に数値を変数に入れる必要性がないのであれば1と計算していただいても結構です。
「$number1%$number2」は剰余を行っているのですが、$number1には5、$number2には3が入っているので、この変数の値同士の除算の余りを算出します。
特に数値を変数に入れる必要性がないのであれば1と計算していただいても結構です。
「$number1*$number2+100」は掛け算と足し算を行っているのですが、計算の優先順位が高いのは掛け算です。掛け算を行ってから足し算を行います。
これは算数の計算順序と同じです。足し算から計算したい場合は1と、カッコを足し算に付け加えてください。
カッコを付けることで優先順位が掛け算より高くなります。
注意してほしいことが1点あります。
それは1のように文字列と計算式を文字列連結演算子でつなげる場合には注意が必要です。
結論から先に言いますとこの例はエラーになります。プログラムは文字列を連結する「.」を小数点と勘違いしてエラーを出しています。
ですのでこの計算式には以下のようにカッコを付けてください。1

カテゴリー
PHP

switchで占いを作ろう

この例はswitch文で分岐して、占いを作成しています。11111 $numberには0から6までのランダムな数値が入ります。
その数値とcase文を比べて一致しましたら、$resultに結果が入り、その$resultをprint文で出力しています。
1は「数値に関する関数を知ろう」で説明しますが、これは関数と言われているものです。
関数については「ユーザー定義関数について知ろう」で詳しく説明します。
ここでは関数について、少し説明します。
PHPの関数の仕組みはエクセルの関数の仕組みと意味は同じです。
エクセルをご存知の方はわかると思いますが、エクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが3,5,7であるならば結果は15です。
SUMには初めから指定した範囲の足し算を行うと言う仕組みが備わっています。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
mt_rand関数は乱数を生成するという決められた処理を行い、乱数と言う結果を返します。1 この例の場合には最小値が0で、最大値が6なので、0から6までのランダムな数値が$numberに入ります。