Skip to content
Playground

演習: 条件分岐

変数 num の値が偶数なら "偶数" 、奇数なら "奇数" と出力するプログラムを書いてください。

const num = 7;

num の値を変えて動作を確認してください。

ヒント

num % 2 の結果が 0 なら偶数です。

以下のプログラムについて、score の値が (1) 80、(2) 59、(3) 60 のとき、それぞれ何が出力されるか予測してください。予測した後、score の値を変えて実行し確認してください。

const score = 80;
let result;
if (score >= 60) {
result = "合格";
} else {
result = "不合格";
}
console.log(result);
ヒント

score >= 60 は「60 以上か?」という条件式です。(3) の score = 60 のとき、60 >= 60truefalse のどちらになるか考えてください。

変数 score の値が 60 以上なら "合格" と合格ラインとの差を、60 未満なら "不合格" と不足点を出力するプログラムを書いてください。

const score = 75;

出力例(score75 の場合):

合格
合格ラインを15点上回っています

出力例(score45 の場合):

不合格
あと15点必要です

score の値を変えて、両方のパターンを確認してください。

ヒント

if / else の各ブロックの中で、合格ラインの 60 との差を計算して出力します。

変数 score の値に応じて、以下の基準で成績を出力するプログラムを書いてください。

const score = 75;
点数成績
90以上A
70以上90未満B
50以上70未満C
50未満D

score の値を変えて、各成績が正しく出力されることを確認してください。境界値(90, 70, 50)での動作も確認してください。

ヒント

if / else if / else を使います。条件式は上から順に評価されるため、score >= 70 に到達した時点で 90 以上は既に除外されています。

ポイント残高に応じて会員ランクを判定するプログラムがあります。points の値が (1) 200、(2) 800、(3) 3500 のとき、それぞれ何が出力されるか予測してください。予測した後、実際に実行して確認してください。

const points = 200;
let rank;
if (points >= 3000) {
rank = "ゴールド";
} else if (points >= 1000) {
rank = "シルバー";
} else if (points >= 500) {
rank = "ブロンズ";
} else {
rank = "一般";
}
console.log("会員ランク: " + rank);
ヒント

条件式は上から順に評価され、最初に true になったブロックだけが実行されます。各入力値について、どの条件式で初めて true になるかを順に追ってください。

年齢に応じて以下の入場料を出力するプログラムを書いてください。

const age = 10;
年齢料金
3歳以下無料
4歳以上12歳以下500円
13歳以上64歳以下1000円
65歳以上700円

age の値を変えて、各年齢区分の境界値(3, 4, 12, 13, 64, 65)で正しく動作することを確認してください。

ヒント

age <= 3 から判定を始めると、else if に到達した時点で「4歳以上」が保証されます。

映画館の料金を年齢で判定するプログラムがあります。仕様は以下の通りです。

年齢料金
5歳以下無料
6歳以上15歳以下800円
16歳以上1500円

以下のプログラムの /* ??? */ に入る条件式を、選択肢から選んでください。

const age = 10;
let price;
if (age <= 5) {
price = 0;
} else if (/* ??? */) {
price = 800;
} else {
price = 1500;
}
console.log(price + "");

選択肢の && は「かつ」を意味する演算子で、両方の条件式が true のときだけ全体が true になります。

  • (ア) age >= 6 && age < 15
  • (イ) age > 6 && age <= 15
  • (ウ) age <= 15
  • (エ) age < 15
ヒント

else if に到達した時点で、1番目の条件式(age <= 5)は false です。つまりこの時点で age の範囲は絞られています。各選択肢に境界値を代入して、仕様通りの料金になるかを確かめてください。

2つの変数 ab の値を入れ替えて出力してください。入れ替えた後に a"みかん"b"りんご" になるようにします。

let a = "りんご";
let b = "みかん";
// ここに入れ替えの処理を書く
console.log(a); // みかん
console.log(b); // りんご
ヒント

ab の値を入れると、a の元の値が消えてしまいます。先に a の値を別の変数に退避してください。

3科目の点数が変数で与えられています。最も高い点数を求めて出力してください。

const math = 78;
const english = 92;
const science = 85;
let max = math;
// ここに処理を書く
console.log("最高点: " + max);

出力例:

最高点: 92

値を変えて、どの科目が最高点でも正しく動作することを確認してください。

ヒント

maxenglish を比較し、english のほうが大きければ max を更新します。同様に science とも比較します。

3-j. 2つの数を小さい順に並べる

Section titled “3-j. 2つの数を小さい順に並べる”

2つの変数 ab を小さい順に並べて出力するプログラムを書いてください。a のほうが大きい場合は入れ替えてから出力します。

let a = 50;
let b = 20;

出力例:

20 50

ab の値を入れ替えて(a = 20, b = 50 など)、どちらの場合でも小さい順に出力されることを確認してください。

ヒント

if (a > b) のときだけ、3-h と同じ方法で入れ替えます。

3つの変数 a, b, c を小さい順に並べ替えて出力するプログラムを書いてください。ループは使わず、if と変数の入れ替えだけで実装します。

let a = 30;
let b = 10;
let c = 20;

出力例:

10 20 30
ヒント

まず ab を比較して、a のほうが大きければ入れ替えます。次に ac、最後に bc を同様に比較します。3-j の処理を3回繰り返すイメージです。

変数 year がうるう年かどうかを判定して、結果を出力するプログラムを書いてください。

const year = 2024;

うるう年の条件:

  • 4 で割り切れる年はうるう年
  • ただし、100 で割り切れる年はうるう年ではない
  • ただし、400 で割り切れる年はうるう年

以下の年で動作を確認してください。

うるう年?理由
2024はい4 で割り切れる
1900いいえ100 で割り切れるが 400 で割り切れない
2000はい400 で割り切れる
2023いいえ4 で割り切れない
ヒント

条件が細かいほうから先に判定します。400 で割り切れるか → 100 で割り切れるか → 4 で割り切れるか、の順に if / else if を書いてみてください。% で割り切れるかどうかを判定します。