制御構造2
残りのbreak switch continueです。
1.break文
break文は、主にforやwhileなどのループを抜ける時に使います。
PHPのbreak文が、C言語と違うところはネストしたループ構造を抜ける数を指定することが出来るというところです。
その場合は、
break 3;
のように書きます。
3重のループを一気に抜けることが出来ます。
が、私はあまりオススメしません。
強制的に、いくつものループを抜けることが出来るので強引なカンジがするからです。
同じ理由で、gotoもイヤです。イヤなので説明しません。

for ($i = 0; $i < 10; $i++)
{
echo $i;
if ($i == 3)
{
break;
}
}
?>
↑の例では、for文で10回ループする予定ですが、
$i が3の時はbreakします。
このfor文では、4回ループして、ループを抜けます。
2.switch文
switch文は、同じ変数の値によって処理を分ける場合に使うのが便利です。
if文でも同じことが出来ますが、switch文は条件によっては簡潔に書くことができます。
例えば、$iが1の場合は、処理1。$iが2の場合は、処理2。それ以外の場合は、処理3。
といった制御をしたい場合は、if文だと↓のようになります。
if ($i == 1)
{
処理1;
}
else if ($if == 2)
{
処理2;
}
else
{
処理3;
}
?>
これをswitch文で、書くと
switch ($i)
{
case 1;
処理1;
break;
case 2;
処理2;
break;
default:
処理3;
}
?>

switch文の方が見やすいです。(よね・・・)
if文は、条件を複雑にしたい場合。switch文は、条件が簡単な時。
という使い分けをしたいと思います。。。
気をつけないといけないのは、分岐した後の処理が終わったらbreak文でswitch文を抜けることです。
break文を忘れると、次のcase内の処理も行ってしまいます。
意図的にbreakを入れずに、次のcase内の処理をしたい場合もありますが、他の人がコードを見た時に
あれ?break忘れてるじゃん?ってならないように、コメントを入れてあげるのが親切です。
例えば、
//ここは、あえて、breakを入れていません。
とかですね。。
3.continue文
continue文は、主にループ中に使用することで、continue以降の処理をスキップして、次のループに戻すことができます。
主にループ中と言ったのは、PHPでは、switch文でもcontinueが有効に使うことが出来るからです。
使ったことが無いので、やめておきますw(それに一般的ではないと思います。)
20代後半の人が見たらなんじゃ、コリャ~とキレること間違いありません。
for ($i = 0; $i < 10; $i++)
{
if ($i == 3)
{
continue;
}
echo $i;
}
?>
↑のコードを動かすと、
012456789
のような結果を出力します。
「3」がありませんよね。continueで次以降の処理をスキップしてループの先頭に戻ったからです。

ちなみに、continue文でもbreak文と同じくスキップするループ構造を回数で指定することができます。
これも、20代後半の人が見たらなんじゃ、コリャ~とキレるので、説明しません。
いちおう、動きだけでも・・・
for ($j = 0; $j < 3; $j++)
{
for ($i = 0; $i < 10; $i++)
{
if ($i == 3)
{
continue 2;
}
echo $i;
}
}
?>
↑のコードの出力は、
012012012
となります。
------------------------------------
一応これで、予定してた制御構造終わりました。
ところで、declareというのもあるみたいですね。
よく分らないので、分ったら書いてみます。
読み込み系の命令も、そのうち書きます。(requireなど)
1.break文
break文は、主にforやwhileなどのループを抜ける時に使います。
PHPのbreak文が、C言語と違うところはネストしたループ構造を抜ける数を指定することが出来るというところです。
その場合は、
break 3;
のように書きます。
3重のループを一気に抜けることが出来ます。
が、私はあまりオススメしません。
強制的に、いくつものループを抜けることが出来るので強引なカンジがするからです。
同じ理由で、gotoもイヤです。イヤなので説明しません。

for ($i = 0; $i < 10; $i++)
{
echo $i;
if ($i == 3)
{
break;
}
}
?>
↑の例では、for文で10回ループする予定ですが、
$i が3の時はbreakします。
このfor文では、4回ループして、ループを抜けます。
2.switch文
switch文は、同じ変数の値によって処理を分ける場合に使うのが便利です。
if文でも同じことが出来ますが、switch文は条件によっては簡潔に書くことができます。
例えば、$iが1の場合は、処理1。$iが2の場合は、処理2。それ以外の場合は、処理3。
といった制御をしたい場合は、if文だと↓のようになります。
if ($i == 1)
{
処理1;
}
else if ($if == 2)
{
処理2;
}
else
{
処理3;
}
?>
これをswitch文で、書くと
switch ($i)
{
case 1;
処理1;
break;
case 2;
処理2;
break;
default:
処理3;
}
?>

switch文の方が見やすいです。(よね・・・)
if文は、条件を複雑にしたい場合。switch文は、条件が簡単な時。
という使い分けをしたいと思います。。。
気をつけないといけないのは、分岐した後の処理が終わったらbreak文でswitch文を抜けることです。
break文を忘れると、次のcase内の処理も行ってしまいます。
意図的にbreakを入れずに、次のcase内の処理をしたい場合もありますが、他の人がコードを見た時に
あれ?break忘れてるじゃん?ってならないように、コメントを入れてあげるのが親切です。
例えば、
//ここは、あえて、breakを入れていません。
とかですね。。
3.continue文
continue文は、主にループ中に使用することで、continue以降の処理をスキップして、次のループに戻すことができます。
主にループ中と言ったのは、PHPでは、switch文でもcontinueが有効に使うことが出来るからです。
使ったことが無いので、やめておきますw(それに一般的ではないと思います。)
20代後半の人が見たらなんじゃ、コリャ~とキレること間違いありません。
for ($i = 0; $i < 10; $i++)
{
if ($i == 3)
{
continue;
}
echo $i;
}
?>
↑のコードを動かすと、
012456789
のような結果を出力します。
「3」がありませんよね。continueで次以降の処理をスキップしてループの先頭に戻ったからです。

ちなみに、continue文でもbreak文と同じくスキップするループ構造を回数で指定することができます。
これも、20代後半の人が見たらなんじゃ、コリャ~とキレるので、説明しません。
いちおう、動きだけでも・・・
for ($j = 0; $j < 3; $j++)
{
for ($i = 0; $i < 10; $i++)
{
if ($i == 3)
{
continue 2;
}
echo $i;
}
}
?>
↑のコードの出力は、
012012012
となります。
------------------------------------
一応これで、予定してた制御構造終わりました。
ところで、declareというのもあるみたいですね。
よく分らないので、分ったら書いてみます。
読み込み系の命令も、そのうち書きます。(requireなど)