条件分岐
プログラムを作成するにあたり、変数の値により振る舞いを変えたり、ある条件が成立したときにプログラムの動作や状態を変えることが必要になります。そのひとつの重要な構文が条件分岐です。
プログラムの基本的な分岐は単純で、条件によって2つに別れます。条件が成立(true)するか、成立しない(false)かの二択です。もちろん、それを組み合わせてもっと複雑な分岐を作成することも可能です。
条件分岐には、if else 構文を使います。if else構文は、2つの分岐ですが、else 以下を省略できます。その場合は、条件の値がfalseの場合は次の文(ブロック)を実行せず、その次の文に進みます。
条件を設定するには、通常は条件式を使います。単に値でも一致の規則により、真偽が決まりますが、紛らわしいので必ず条件式を使いましょう。(例えば数値の0以外はtrueになり、0はfalse、文字列などもtrueになる。)
https://scrapbox.io/files/61f09f42a4588c001fb36ab1.svg
else文がある場合は、条件がfalseのときはelse以下の文(ブロック)を実行して、次に進みます。
https://scrapbox.io/files/61f09f61896371001d6cd5f7.svg
code:isEven1.js
function isEven(number){
let rs = false;// とりあえず、偶数ではないことにする
if ( number % 2 == 0 ) {
rs = true;// 偶数だった(2で割り切れた)ので、trueに変更
}
return rs;//結果を返す
}
code:isEven2.js
function isEven(number){
let rs;
if ( number % 2 == 0 ) {
rs = true;// 偶数のなので、true
} else {
rs = false;// 偶数ではないので、false
}
return rs;//結果を返す
}
code:isEven3.js
function isEven(number){
if ( number % 2 == 0 ) {
return true;// 偶数のなので、trueを返す
} else {
return false;// 偶数ではないので、falseを返す
}
}
上の3つは返す結果は同じです。どれを使ってもいいですが、最初は好みでお使いください。私は最後が好きです。
3つ以上の分岐にしたい場合は、else if (条件) を使ってさらなる分岐を作ることができます。else if (条件)は複数個追加可能なのでいくつでも分岐することができます。
https://scrapbox.io/files/61f09f74a769d5001d7ecb0b.svg
code:3つ以上の例
/*
グレゴリオ暦では、うるう年を次のように定めています。
(1)西暦が4で割り切れる年をうるう年とする
(2)西暦が100で割り切れて、400で割り切れない年は、平年とする
2020年や2024年は(1)に当てはまるので、うるう年となりますが、
2100年、2200年、2300年は(2)に当てはまり、うるう年にはなりません。
2000年は、400で割り切れるので(2)に当てはまらず、うるう年になります。
*/
function isLeapYear(year){
if ( year % 400 == 0 ) {
return true;
} else if ( year % 100 == 0 ){
return false;
} else if ( year % 4 == 0 ) {
return true;
} else {
return false;
}
}