3/24 インターン11回 制御構文を学ぼう
ほんとだったら今ライブに行ってたんだな~!!と思いながらブログを書いています。当初思っていたよりウイルスの影響が大きく、私の生活の中でも、実際に色んなものが中止になって悲しいけどしょうがないなあ、と思います。ライブの振替日までには収まればいいなあ。
今回は制御構文制御構文制御構文を学んでいきます。複雑になってきました。
1.制御構文とは
ループ、繰り返しをしてくれるものです。例えば、1~100の数字を出力する際、制御構文を使えばそれらすべてを呼び出していかなくてよくなります。便利。
2.for文
<?php for($i = 0; $i <= 5; $i++ ){ echo ("アメは").$i.("個です。<br>"); } ?>
この結果は、
アメは0個です。
アメは1個です。
アメは2個です。
アメは3個です。
アメは4個です。
アメは5個です。
となります。$i++なので、1ずつ増えた文章が、0~5まで出力されます。
for文の中はカウンタ・条件設定と論理演算子が入っています。
カウンタ→変数の初期値
条件設定→iがどこまでか
そのため、今回は0からの5までということになってます。条件を満たすまで繰り返してくれる構文です。
3.while文
<?php echo ('<br>'); $i = -5; while ($i <= 5){ echo("アメは").$i.("個です。<br>"); $i++; } ?>
結果は、
アメは-5個です。
アメは-4個です。
アメは-3個です。
アメは-2個です。
アメは-1個です。
アメは0個です。
アメは1個です。
アメは2個です。
アメは3個です。
アメは4個です。
アメは5個です。
となります。
while文はほとんどif文と一緒です。書き方が違いますが。for文は初期値を必ず計算するけど、while文は条件式に合わないと計算しない場合があるのも違いみたいです。このとき、変数加算がないと無限ループになるので注意。
4.foreach文
<?php echo ('<br>'); $likefruit = array( "1位" => "林檎", "2位" => "オレンジ", "3位" => "柿", "4位" => "桃"); foreach ($likefruit as $name ){ echo("私の好きな果物は").$name."<br>"; } ?>
私の好きな果物は林檎
私の好きな果物はオレンジ
私の好きな果物は柿
私の好きな果物は桃
これは最初に設定したものを順にすべて繰り返して表示してくれます。
asを忘れないように注意!
5.break
<?php echo ('<br>'); $i = 0; while($i < 10){ if($i === 5){ break; } echo $i."<br>"; $i++; } ?>
0
1
2
3
4
これは、if文にある条件になったら処理を中断することができるコードです。そのため、今回5になった時に処理を中断するため、1~4までの数字が出力されています。
6.continue
<?php echo ('<br>'); $i = 0; while($i <= 5){ echo("ここが始めです").$i."<br>"; $i++; echo("1増えて".$i."<br>"); //偶然なら処理を中断 if($i%2 == 0){ echo("偶数なので処理を中断します<br><br>"); continue; } echo("今のアメは").$i.("個です<br><br>"); } ?>
ここが始めです0
1増えて1
今のアメは1個です
ここが始めです1
1増えて2
偶数なので処理を中断します
ここが始めです2
1増えて3
今のアメは3個です
ここが始めです3
1増えて4
偶数なので処理を中断します
ここが始めです4
1増えて5
今のアメは5個です
ここが始めです5
1増えて6
偶数なので処理を中断します
これは処理が2つあり、3行のうち2行分の処理①と、最後の1行分の処理②があります。処理②
continue;
}
echo("今のアメは").$i.("個です
");
}
に部分は、もし偶数だった場合実行されません。こちらは初めの偶数2になった瞬間に2以降の処理がすべてとまるのではなく、$iが5になるまで処理が続くのが特徴です。
複雑になってきてますが、いろいろ試しながら勉強していきたいと思います。へー!ってことばかりでまだどんなふうに実用していくかまだ想像しきれてませんが、特に、breakやcontinueなど、最近は外出できないので頑張ってわかるようになりたいです~!