メインコンテンツまでスキップ

場合分けする(if文)

計算結果が所定の値を超えているかなどの判定式を元に、実行する操作を切り替える事ができます。この行為を条件分岐、この構文をif文といいます。

if (/*判定条件式(true / false で出力されるもの)*/) {
// 判定条件式が true になった際の処理
}

if と書いたあとに () を書きます。 () の中には、true または falseが出力される式を書きます(後述)。この式のことを条件判定式といいます。

条件判定式を記入した後ろに {} を書きます。{} の中には、その式が true になったときに実行する処理を書きます。

条件判定式を書く

条件判定式は、true(はい)もしくは false(いいえ)が出力される式のことです。たとえば…

  • 変数 a の中身は 3 ですか?
  • 変数 k の数値は 5 以下ですか?
  • 関数 something の結果は true? false?

条件判定は以下のような演算記号を使います。

  • AはBと同じ … A == B
  • AはBと同じではない … A != B
  • AはBより大 … A > B
  • AはB以上 … A >= B
  • AはB以下 … A <= B
  • AはBより小(未満) … A < B

大なりイコール・小なりイコールは、順番を変えないでください。順番が変わると、別の表現として扱われます。

条件に当てはまらなかった場合にのみ行う処理

if 文に当てはまらなかった場合のみに行いたい処理がある場合、elseを使います。

if (/*判定条件式(true / false で出力されるもの)*/) {
// 判定条件式が true になった際の処理
} else {
// 判定条件式が false になった際の処理
}

if 文で当てはまらなかったものに対してもう一度別の条件式で条件分岐したい場合、elseのあとにそのまま if 文を続けます。

if (/*判定条件式(true / false で出力されるもの)*/) {
// 判定条件式が true になった際の処理
} else if (/*別の判定条件式*/) {
// 1つ目の判定条件式がfalse かつ 別の判定条件式が true になった際の処理
} else {
// 判定条件式が2つとも falseになった際の処理
}

else ifはいくつもつなげることができます。elseだけを使うのは、すべての条件がfalseになったときだけ!

if (/*判定条件式(true / false で出力されるもの)*/) {
// 判定条件式が true になった際の処理
} else if (/*別の判定条件式*/) {
// 1つ目の判定条件式がfalse かつ 今回指定した判定条件式が true になった際の処理
} else if (/*別の判定条件式*/) {
// ここまでの判定条件式がfalse かつ 今回指定した判定条件式が true になった際の処理
} else {
// 判定条件式がすべて falseになった際の処理
}

if文を使ってみよう!

では、具体的に文章をプログラムに起こしてみます。

「変数aが4なら、"やったー!"と出力。そうでなければ、変数aに4を代入」

この条件分岐を2回連続で行うと、それぞれの分岐で網掛けされた部分が動きます。

let a = 0;

if (a == 4) {
print("やったー!");
} else {
a = 4;
}

if (a == 4) {
print("やったー!");
} else {
a = 4;
}

1回目の条件分岐でaは4ではないため条件判定式はfalse(いいえ)になり、else側の処理が実行されます。else側ではaに4を代入します。

続いて、2回目の条件分岐の時点では、先ほどの操作によりaには4が代入されているので、条件判定式がtrue(はい)となり、if文内部の処理が実行されます。

【練習】条件判定式・条件分岐

bbase.htmlの「ここにプログラムを書く」部分に、以下のようなプログラムを作成してください。

  1. 変数 flag (定義済み) が0の場合は1を、そうでない場合は0を代入
  2. 変数 flag の値を出力

値を出力するときは、println();を使用してください。詳しい使い方はこちら

ファイル bbase.html をダウンロード

一定間隔ごとに01が交互に出力されたら成功です!これで条件分岐もバッチリ!