PHP I(Progate) 学習内容④
▼繰り返し処理
1から100までの数値を出力するときのように
繰り返しで何かを行いたいときには繰り返し文を用います。
繰り返し文を使うことで、繰り返しの処理(ループ処理)を
以下の図のようにたった数行で書くことが出来ます。
echo 1;
echo 2;
echo 3;
・
・
・
echo 100;
for($i = 1;$i <= 100;$i++){
echo $i;
}
▼for文
for文を用いることで繰り返し処理を行うことができます。
図の例では、変数$iに1を初期値として与え、「echo $i;」を
行っています。その後はループの条件を満たさなくなるまで
値の更新「$i++」と、「echo $i;」を繰り返し行います。
for($i = 1;$i <= 100; $i++){
↑ ↑ ↑
①初期化②ループ条件③変数の更新
echo $i;
↑
③繰り返す処理
}
☆例☆
for ($i = 51; $i <= 100; $i++){
echo $i;
echo "<br>";
▼while文
while文もfor文と同様に、繰り返し処理の一つです。
条件式を指定し、それがtrueの間、処理が繰り返し
実行されます。for文の時のように変数$iが自動的に
増えていかないため、ここではループのたびに「$i ++;」を
行っています。
$i = 1; ①初期化
while($i <= 100){ ②ループの条件
echo $i; ③繰り返す処理
$i++ ④変数の更新
}
▼無限ループ
無限ループとは条件式が何周してもtrueのままで
永遠に終了しないループのことです。無限ループは
コンピューターに極端な負担を与えてしまうため、
ループ処理を記述する際は条件式がどこかでfalseに
なるように気をつけなければいけません
$i = 1;
while($i <= 100){
echo $i;
}
☆例☆ ※理解度▲
// 変数$iを定義してください
$i = 2;
// while文を書いてください
while ($i <= 100) {
if ($i % 2 == 0) {
echo $i;
echo '<br>';
}
$i++;
}
▼break
break文は現在のループを強制的に中断する命令です。
for, while, foreachなどの繰り返し文の中で利用できます。
break文はif文などの条件文と組み合わせて利用するのが一般的です。
for($i = 1;$i <= 10;$i++){
if($i > 5){
break; ←$1の値が6になった段階でfor文終了
}
echo $i;
}
//結果;12345
☆例☆
for($i = 1;$i <= 1000;$i++){
if($i > 500){
break;
}
echo $i;
echo "<br>";
}
▼continue
ループそのものを完全に抜けてしまうbreak文に対して
continue文は現在の周だけをスキップし、ループそのものは
継続して実行します。continue文もfor, while, foreachなどの
繰り返し文の中で利用できます。
for($i = 1;$i <= 10;$i++){
if($i % 3 == 0 ){
continue; ←$1の値が3の倍数の時その週のループを終了し
} 次のループを実行
echo $i;
}
//結果;tel:12457810
☆例☆
for($i = 1;$i <= 1000;$i++){
if($i % 3 == 0){
continue;
}
echo $i;
echo "<br>";
}
▼foreach
foreach文とは、配列または連想配列に対して、
先頭のデータから順に繰り返し処理を行うための命令です。
以下のように配列のデータを1つずつ取り出して処理を行うことが出来ます。
「as」の後ろの変数に、ループの度にデータが先頭から順に代入されていきます。
asの後ろの変数名は何を指定しても大丈夫です。
$towns = array("東京","大阪","京都");
foreath($towns as $town) {
echo $town."";
}
//結果:東京 大阪 京都
▼foreachの書き方(1)
foreach文では、配列内のデータが順次「キー変数」、
「値変数」に代入され、それに対して処理が繰り返し適用されます。
「キー変数」には、配列のときはインデックス番号が、連想配列のときは
キーが代入されます。ただし、「キー変数」の部分は省略可能です。
foreath(配列 as 値変数 ) {
繰り返したい処理;
}
foreath(配列 as キー変数 => 値変数 ) {
繰り返したい処理;
}
▼foreachの書き方(2)
foreach文は理解しにくいので少し例を見てみましょう。
図の配列は、果物の名前を「キー」として、その色を
「値」として保持している連想配列です。
1周目のループでは$keyに'Apple'、$valueに'Red'が、
2周目のループでは$keyに'Banana'、$valueに'Yellow'が入っています。
$colors = array (
"Apple" => "Red";
"Banana" => "Yellow";
"Grape" => "Purple";
);
foreath($colors as $key => $value) {
echo $key.":".$value."";
}
☆例☆
$scores = array('数学' => 70, '英語' => 90, '国語' => 80);
foreach ($scores as $key => $value){
echo $key."は".$value."点です";
}
結果//数学は70点です英語は90点です国語は80点です