制御フローとは、文法によってコンピューターの挙動が変化することです
例えば、この選択をしたら甲の挙動 こっちの選択をしたら乙の挙動
ある一文を記述したら、同じような挙動が繰り返されて行われるなどです
if文
「もし〜なら...」というような選択をtrue/false(真・儀)で判断する文法です
if(条件式){ 条件式がtrueの場合に実行する命令} else{ 条件式がfalseの場合に実行する命令}
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-27-6.08.24.jpg)
windowに明日は晴れますか?と、表示させます
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-27-6.08.48.jpg)
OKをクリック→「はい、晴れです」 キャンセルをクリック→「明日は雨です」
yes/noまたはtrue/falseで判断してコンソールに出力される文法です
{ }で囲まれた1文、または複数の文
if...else if文
先ほどは甲ならyes、乙ならnoみたいに単発で完結してましたが、else if文を使用すると、複数の分岐点を作ることが可能になります
if(条件式1){ 条件式1がtrueの場合に実行する命令} elseif(条件式2){ 条件式2がtrueの場合に実行する命令} ...}else{ すべての条件式がfalseの場合に実行する命令}
条件の当てはめは上から処理されていきます
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-28-6.11.39-1024x358.jpg)
arrが3より上の数字ならconsoleに「arrは3より上です」と、出力
arrに5を代入しているので「arrは3より上です」と、出力されています
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-28-6.13.37-1024x358.jpg)
同じ条件式でarrに1を代入してみます
条件式の(arr>=3),(arr>=2)にも当てはまりません
全ての条件に当てはまらなかったので1番下のlogが出力されます
arr=5の時に(arr>=3)(arr>=2)の2つの条件式が当てはまってますが、consoleにha「arrは3より上です」だけしか出力されてません
なぜかというと、if文などは実行される挙動は最初のブロック文だけになります
switch文
真偽だけで判断される条件文ではなく、選択肢が3つ以上の値に別れるような条件に使用
switch(式){ case 値1; //式の値=値1の場合実行される命令文 [break;] case 値2; //式の値=値2の場合実行される命令文 [break;] ... case 値a; //式の値=値aの場合実行される命令文 [break;] default; //式の値がどれも一致しなかった場合の命令文 [break;] }
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-29-21.01.50-1024x553.jpg)
cにBを代入しています
上から順に条件が一致するまで当てはめていき、c=Bになった命令文がconsoleに出力されてます
![](https://shinkairoom.com/wp/wp-content/uploads/2020/04/bird-2112724_1280.png)
繰り返し処理
while文
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-30-5.32.08.jpg)
while(条件式){ 条件式がtrueの時の文 }
do...while文
![](https://shinkairoom.com/wp/wp-content/uploads/2021/04/スクリーンショット-2021-04-30-5.33.50.jpg)
do { 条件式がtrueの時の文 }while(条件);
whileとdo...whileの違い
![](https://shinkairoom.com/wp/wp-content/uploads/2020/04/bird-2112724_1280.png)
ループが開始される前から条件式がfalseである場合がポイント!
while文はループの最初で条件式を判断/条件によってはループ処理が実行されない
do...while文はループの最後で条件式を判断/最低1回は処理が行われる
![](https://shinkairoom.com/wp/wp-content/uploads/2019/11/IMG_05231-e1574250285143.jpg)
for文
![](https://shinkairoom.com/wp/wp-content/uploads/2021/05/スクリーンショット-2021-04-30-5.39.31.jpg)
for(初期化,ループ条件,再設定){ ループ内で実行する条件文 };
![](https://shinkairoom.com/wp/wp-content/uploads/2021/05/スクリーンショット-2021-05-01-5.51.36-1024x403.jpg)
初期化→「x=5」xに5を代入
ループ条件→「x<10」xが10より少ない時ループ処理
設定→「x++」xの値を1つずつ増加
xが10になるまでループ処理が行われます
![](https://shinkairoom.com/wp/wp-content/uploads/2020/04/bird-2112724_1280.png)
![](https://shinkairoom.com/wp/wp-content/uploads/2019/11/IMG_05231-e1574250285143.jpg)
for...in/for...of文
![](https://shinkairoom.com/wp/wp-content/uploads/2021/05/スクリーンショット-2021-04-30-5.43.40.jpg)
for (変数 in オブジェクト){ ループ文 };
オブジェクトとは簡単に言えば、箱、入れ物と考えます
オブジェクトの要素を取り出して処理を繰り返します
for...inでは、オブジェクトを一時的に変数に格納します
![](https://shinkairoom.com/wp/wp-content/uploads/2021/05/スクリーンショット-2021-05-02-10.40.55-1024x283.jpg)
連想配列(配列ではない)fruitsを順に取り出し、
変数shopに代入しながらループを繰り返しています
for...inは連想配列に使用し、配列を処理するにはfor...ofを使用します
![](https://shinkairoom.com/wp/wp-content/uploads/2021/05/スクリーンショット-2021-04-30-5.43.40-1.jpg)
for(変数ofオブジェクト){ ループ文 };