繰り返し処理は、同じ処理を何度も行わせる制御構文です。
「ループ処理」とも言います。
「何回・何十回・何百回・何千回・何万回…」と行わせたい数だけ、同じ動作をコンピュータに行わせることができます。
以下では、主な繰り返し処理の方法とその使い方について解説します。
for文
for
文は、決まった回数同じ処理を繰り返したい時に使用します。
以下は、for
文の基本的な構文です。
for(初期値; 条件式; 増減式) {
// 繰り返したい処理
}
「初期値; 条件式; 増減式」で繰り返す回数を指定しています。
初期値からスタートして、条件式の数まで同じ処理を繰り返します。
また、増減式の数だけ処理をするたびに増加します。
具体的に見てみましょう!
for($i = 0; $i < 3; $i++) {
// 繰り返したい処理
}
この場合、初期値「0」から条件式「3未満」まで同じ処理を繰り返します。
また、増減式「1」だけ処理をするたびに増加します。
(「++」は、「1」を示しています。。)
なので、この場合は、「2回」同じ処理をします。
流れとしては、以下のようになります。
- $iが「0」から始まる。
- 1回目の処理をすると、$iが「1」になる。
- 2回目の処理をすると、$iが「2」になる。
- 3回目の処理をすると、$iが「3」になってしまうので繰り返しの処理が止まる。
より実践的なfor
文の使い方を見たい方は、以下のリンクを見てみましょう。
foreach文
foreach
文は、配列の値の数だけ繰り返し同じ処理をしたい時に使用します。
別の言い方をすると、
配列の値すべてに同じ処理をしたい時に使用します。
以下は、
文の基本的な構文です。foreach
foreach(配列 as 配列から取り出したデータを入れる変数) {
// 繰り返したい処理(配列から取り出したデータを入れた変数を使用する)
}
毎回、配列から値を取り出してから処理をします。
具体的に見てみましょう!
$array = [0, 1, 2, 3];
foreach($array as $num) {
$plusArray[] = $num+1;
}
流れとしては、以下のようになります。
- $arrayには「0」「1」「2」「3」が格納されています。
- 1回目のループでは、$num変数に「0」が格納されます。
その後、$plusArray配列に「0+1」が格納されます。 - 2回目のループでは、$num変数に「1」が格納されます。
その後、$plusArray配列に「1+1」が格納されます。 - 3回目のループでは、$num変数に「2」が格納されます。
その後、$plusArray配列に「2+1」が格納されます。 - 4回目のループでは、$num変数に「3」が格納されます。
その後、$plusArray配列に「3+1」が格納されます。 - $array配列には、4つの値しか入っていないので4回でループ処理は止まります。
- 4回のループ処理が終わると、$plusArray配列には、[1, 2, 3, 4]が格納されています。
while文
while
文は、条件を満たす間繰り返し同じ処理をしたい時に使用します
使う場面はfor文とほとんど同じです。
ただ、for文のが読みやすいため、あまり
文は、使用されません。while
以下は、
文の基本的な構文です。while
初期値;
while(条件式;){
// 繰り返したい処理
増減式;
}
「初期値; 条件式; 増減式」で繰り返す回数を指定しています。
初期値からスタートして、条件式の数まで同じ処理を繰り返します。
また、増減式の数だけ処理をするたびに増加します。
具体的に見てみましょう!
$count = 0;
while($count < 3){
// 繰り返したい処理
$count++;
}
流れとしては、以下のようになります。
- $count変数に「0」を代入する。
- 1回目の処理をすると、$countが「1」になる。
- 2回目の処理をすると、$countが「2」になる。
- 3回目の処理をすると、$countが「3」になってしまうので繰り返しの処理が止まる。
まとめ
繰り返し処理は、同じ処理を行わせたい数だけコンピュータに行わせるときに使用します。
for文, foreach文, while文がよく使用され、それぞれ以下のように使い分けされます。
- for文:決まった回数繰り返したい時に使用する。
- foreach文:配列の値の数だけ繰り返したい時に使用する。
- while文:条件を満たす間繰り返したい時に使用する。
以上がPHPの繰り返し処理についての詳しい解説です。
特にforeach文は、ほとんどのアプリで頻繁に使われている構文になりますのでしっかり理解しておきましょう。
あなたの挑戦を応援しています!!