01-13 多方向分岐Ⅰ(else if文)

if else文は2方向の分岐であったが、else ifを追加することで多方向に分岐できる。

if else文は以下のように書く。

if (条件式1) {
  条件式1を満たしたときの処理
}
else if () {
  条件式2を満たしたときの処理
}
else {
  いずれも満たさなかったときの処理
}

例題1-13-1

BMI(Body Mass Index)という世界標準の肥満度指数がある。身長h「m」、体重w「kg」としたときBMIは以下の式で求められる。

bmi=w/h/h

日本肥満学会の定めた基準では18.5未満が「低体重(やせ)」、18.5以上25未満が「普通体重」、25以上が「肥満」に分類される。何人かの身長と体重のデータがあり、これからBMIを計算し、痩せすぎか、太りすぎかを判定する。

コード

function setup() {
  createCanvas(400, 400);
  let name = ['Alice', 'Boa', 'Elsa'];  
  let w = [42, 56, 75]
  let h = [1.6, 1.65, 1.68]
  for (let i = 0; i < name.length; i++) {
    bmi = w[i] / h[i] / h[i]
    if (bmi < 18.5)
        judge = '低体重'
    else if (bmi < 25)
        judge = '標準体重'
    else
        judge = '肥満'
    print(name[i], judge);
  }
}

結果

練習問題1-13-1

配列のデータを日本語の名前に変更しなさい。またデータ数も変えなさい。

練習問題1-13-2

下記の勇者と神様の会話がステータスにより分岐するようにしなさい。

好感度(affinity)が
80以上であれば「神:バッチリ」
60以上であれば「神:そこそこ」
それ以外は「神:やめたら?」

と表示されるようにしなさい。

function setup() {
  let affinity = 75;
  print("勇者:神様、姫に告白したいのですが…");
  // 続きを作ろう
}

練習問題1-13-3

自分でelse if文の問題を考えてみよう!