見出し画像

「foreach文」「while文」「繰り返し処理の中断」「スキップ」について


foreach文とは

foureach(読み:フォーイーチ)文とは、配列の要素の数だけ繰り返しを行う制御文。

foreach文を使った繰り返し処理

$array = {"あ", "い", "う"}
foreach (配列を指定 as 配列の値を代入する変数) {
 //繰り返し実行する処理
}
$moneys = array(100, 300, 500, 1000); //金額の指定
$total = 0; //合計額

foreach ($moneys as $value) {
  var_dump($value);
  $total += $value;
}

echo $total;


int(100)
int(300)
int(500)
int(1000)
1900


foreach文で配列要素のキーを取得する

$array = {"あ", "い", "う"}
foreach (配列を指定 as 配列のキーを代入する変数 => 配列の値を代入する変数) {
 //繰り返し実行する処理
}
$array = array("100" => "和食", "101" => "中華", "102" => "洋食");

foreach ($array as $key => $value) {
    echo "キーは$key 値は$value";
}


キーは100 値は和食
キーは101 値は中華
キーは102 値は洋食


別例↓

//多次元配列を用いた例

$me => [
 '家族' => [
  '母' => [
   '身長' => '155㎝',
   '体重' => '55kg',
   '血液型' => 'A',
   '生年月日' => 'xx年xx月xx日'
  ]
  '父' => [...]
 ]

$MyMother = $me['家族']['母']

foreach($MyMother as $key => $person) {
  //処理
}

//この場合は $keyに['母']、$personに母の情報('身長'から'生年月日'まで)が入る。


while文とは

while(読み:ホワイル)文とは、条件が成立している間、処理を繰り返し実行する制御文
同じ繰り返し処理をであるforeach文との違いは、繰り返しの回数があらかじめ決まっていないところ。

while文を使った繰り返し処理

while (条件) {
  //繰り返しの中で実行される処理
}

while文では、条件が成立する限り処理を繰り返す。

$i = 0;

while ($i < 5) {
  echo $i;
  $i++;
}


0
1
2
3
4


while文の注意点

常に成り立つような条件を書いてしまうと、処理を永遠に繰り返してしまう。
これを「無限ループ」という。

//無限ループの例

$i = 0;

while ($i < 5) {
  echo $i;
}

0
0
0
........

iを加算する処理が入っていないため、ずっと0が続く。


do-while文を使った繰り返し処理

while文との違いは、条件が成立しなくても必ず一度は処理を実行する
(条件を処理の下に書くため、必ず一度は処理が実行される。)


do {
 //繰り返しの中で実行される処理
} while(条件)
$i = 0;

do {
 echo $i;
 $i++;
} while($i < 2);


0
1


処理を中断したいとき

break:その break 文が存在するループ処理を中断できる
return:その return 文が存在する関数の処理を中断できる

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


1
2
3
4
5
for ($i = 0; $i < 10; $i++) {
  if ($i <= 5) {
    return;
  }
  echo $i;
}


1
2
3
4
5


ループをスキップしたとき

「continue」文を使って処理をスキップし、次の回に移る。

for ($i = 0; $i < 5; $i++) {
  if ($i == 2) {
    continue;
  }
  echo $i;
}


0
1
3
4



この記事が気に入ったらサポートをしてみませんか?