制御構造 | PHPやります!PHPでスクリプト/CGI作ります!

制御構造

制御構造についてです。ほとんど、C言語と同じです。
PHP特有の書き方もあって面白いと思いますです。

今日は、if / while / do while / forの4つ。
PHPに限ったことではないですが、制御構造が分からないとまともなプログラムって書けないですよね。。。
あたりまえか・・・

他にもあるんですが、今日は絵も書いて疲れたのでこの4つにしました。
ちなみに、この絵はGIMPで書きました。ヘタクソですよねw

早く次に進みたいんですけど、制御構造だけメモっておきます。

1.if文
条件を指定して、処理を行うことができます。
変数がtrueの場合だけ次の処理を行うとかです。

$PHPやります!PHPでスクリプト/CGI作ります!


if ($f == true)
{
echo 'trueです';
}
else
{
echo 'trueじゃないです';
}

//別の書き方
if ($f == true) :
echo 'trueです';
else:
echo 'trueじゃないです';
endif;

1-2.elseif文------------
if ($i == 0)
{
echo '0です';
}
elseif ($i == 3)
{
echo '3です';
}
else
{
echo '0でも3でもないです';
}

//別の書き方
if ($i == 0) :
echo '0です';
elseif ($i == 3) :
echo '3です';
else :
echo '0でも3でもないです';
endif;

?>

2.while文(前判定)
ある条件の場合に、処理を繰り返す(ループ)ことができます。
変数がtrueの場合は、次の処理を繰り返すなど。
while文で気をつけないと行けないことは、繰り返し処理の中でループを抜ける処理を忘れずに入れることです。
この処理が無いとループから抜けることが出来なくなって無限ループの出来上がりとなります。

※↓のコードでは、$fがtrueで初期化しているのでwhileループの処理を行いますが、
ループ内の繰り返し処理の中で、すぐfalseを設定しているので1回しかループしません。
$fがfalseで初期化されている場合は、$fがtrueではないのでループを行わない。
ループに入る前に$fがtrueか判定するので、前判定とか言ったりします。

$PHPやります!PHPでスクリプト/CGI作ります!



$f = true;
while ($f == true)
{
$f = false;
}

//別の書き方
while ($f == true) :
$f = false;
endwhile;

3.do while文(後判定)
ある条件の場合に、処理を繰り返す(ループ)ことができます。
2.while文(前判定)と違うのは、ループ条件の判定を後から(ループ処理を1回行った後)に行うということ。
while文と同じく気をつけないといけないことは、ループを抜ける処理が無いと無限ループになるということです。
ループを抜ける処理は忘れずにいれる。

$PHPやります!PHPでスクリプト/CGI作ります!

※↓のコードでは、$fがtrueで初期化していますが、ループの判定は後から行うので$fの値にかかわらずループ処理を行います。
ループ内の繰り返し処理の中で、すぐfalseを設定しているのでループをすぐに抜けます。


$f = true;
do
{
$f = false;
}
while ($f == true);

4.for文
ループに入る直前の処理と、ループ条件、ループする度に行う処理を指定して繰り返し処理を行うことができます。
個人的にはwhileより使いやすいイメージがあります。

$PHPやります!PHPでスクリプト/CGI作ります!

難しいことは無いです。
$i = 0 でループに入る直前の処理をしています。
$i < 10 がループ条件です。
$i++ がループする度に行う処理です。
↓の例だと、$iが10より小さいがループ条件になってて、ループする度に$iをインクリメントしているので10回ループします。

for ($i = 0; $i < 10; $i++)
{
echo $i;
}

?>

明日は、残りの制御構造やって明後日からは作っていきます。