プログラミング学習記録 #10 繰り返し処理

●foreach

配列の前要素に繰り返し処理を行う

$numbers = [1, 2, 3, 4];

foreach ($numbers as $number) {
   echo $number . PHP_EOL;
}

//
1
2
3
4

連想配列の場合

$scores = [
   'suzuki' => 60,
   'tanaka' => 70,
   'kimura' => 60,
];

foreach ($scores as $key => $score) {
   echo $key . ':' . $score . '点' . PHP_EOL;
}

//
suzuki:60点
tanaka:70点
kimura:60点​

$key => $score とすることで連想配列のキーも取り出せる


●for

決められた回数分の繰り返し処理を行う時に使う

for ($i = 1; $i <= 10; $i++) {
   echo $i . PHP_EOL;
}

//
1
2
3
4
5
6
7
8
9
10


●while

ある条件を満たす間だけ繰り返し処理を行いたい時に使う

$i = 0;

while ($i <= 100) {
   echo $i . PHP_EOL;
   $i += 10;
}

//
0
10
20
30
40
50
60
70
80
90
100


●continue, break

continue:ループをスキップしたい時に使う

break:ループを抜けたい時に使う

$numbers = [1, 4, 8, 'a', 10,];
$even = 0;

foreach ($numbers as $number) {
   if (!is_numeric($number)) {
       echo '数値ではないので処理を中断' . PHP_EOL;
       break;
   }
   if ($number % 2) {
       continue;
   }
   $even += $number;
}

echo '偶数の値の合計:' . $even . PHP_EOL;

//
数値ではないので処理を中断
偶数の値の合計:12

$numbersの値が1の時は奇数なのでcontinueによりスキップされる

$numbersの値がaの時数値ではないのでbreakにより処理が中断される


●繰り返し処理の注意点

・繰り返し処理は複数種類があるので適切な処理を選択する


●繰り返し処理のポイント

○ループ開始時

・初期化コードはループの直前に置く

・無限ループにはwhile(true)を使う

○ループ本文

・ループのネスト(入れ子)を少なくする ※多くても3段階

・ループの前処理・後処理は先頭か末尾にまとめる

・ループは1回につき1つの機能を実行する

・ループは50行以内にまとめる(できれば20行以内)

○ループ終了時

・全てのケースでループが終了することを確認する

・ループの開始時と終了時をシミュレーションする




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