AdSheepは、新米バックエンドエンジニアの技術分野に留まらないライフハック風ブログです

【PHP】continueとbreak、exitとreturnの特徴と使い方

PHP

どうも、ShouNです。
プログラムを書いていると、特定の条件下で処理を中断したいことがあります。
処理を中断する構文には、continueやbreak、exit、returnなどがあります。
それぞれがどのような場合に使えて、どのような挙動をするのか混乱することがよくあるので、本日はそれぞれの特徴と違いについてまとめました。
今回の例文はPHPで書いていますが、どの言語でも概ね同じように使えると思います。

continueとbreak

forやforeachなどの繰り返し処理の中で使います。
それぞれ、挙動が違います。

continue

特定の条件の時、繰り返し処理をスキップします。
つまり、次の条件からの繰り返し処理は継続して行われることになります。

for(i = 0; i < 10; i++){
処理a
if(){
[ここにcontinue処理];
}else{
処理b
}
処理c
}

この例文の場合、continue後は処理cは行われず、iがインクリメントされ、次の繰り返しとして処理aが始まります。

break

特定の条件の時、繰り返し処理を抜けます。
次の条件からの繰り返し処理は行われません。
break 2のように、breakの後に数値を指定することで、抜ける処理のネストの深さを調節できます。

for(i = 0; i < 10; i++){
処理a
for(j = 0; j < 10; j++){ if(){ [ここにbreak処理]; }else{ 処理b } } 処理c } 処理d ``` この例文でbreak処理が単純な`break`だった場合、一番近い繰り返し処理を抜けた後、処理cが行われます。 `break 2`の場合は、一番最初の繰り返し処理まで抜けて、処理dが行われます。 上記の2つの使い方については、[こちら](http://www.flatflag.nir87.com/continue-466)が参考になります。 ## exitとreturn exitとreturnは必ずしも繰り返し処理の中で使う必要はありません。 それぞれ、以下のような特徴があります。 ### exit 特定の条件の時、処理を即時終了します。 全ての処理が終了するので、その後の処理は行われません。 基本的にはあまり使用する機会はないように思います。 ## return 特定の条件の時、処理を終了し呼び出し元に処理を戻します。 呼び出し元に以降の処理があれば処理は継続します。 ``` class A{ $b = new B(); $b-&gt;call();
処理a
}

class B{
function call(){
if(){
rerutn;
}else{
処理b
}
}
}

例文の場合、classBのcall()から呼び出し元のclassAにreturnした後、処理aが行われます。

exitとreturnについては、こちらが参考になりました。

まとめ

ShouN
ShouN

時と場合で正しい処理をスパっと選択できるようになりたいです。

コメント