4.1. 条件分岐

条件分岐文は、 〈条件〉 が成り立つかどうかによって、実行する処理を切り替えます。

【共通テスト手順記述標準言語 (DNCL) 】

一般形
もし 〈条件〉 ならば
| 〈処理〉
を実行する
もしx<3ならば
| x ← x+ 1
| y ← y- 1
を実行する
もし 〈条件〉 ならば 〈処理〉 を実行する

(※処理が1行しかない場合、|無しで書くこともできる)

もしx<3ならばx ← x+1を実行する

【JavaScript】

キーワードifの後ろに条件式(比較演算や論理演算の式)を書きます。条件式は、必ず小かっこ「( )」で囲みます。処理が1つだけなら中かっこ「{ }」で囲まないで書くこともできますが、ミスを防ぐため{ }で囲むことを推奨します。

DNCL JavaScript 実行結果
もしx<3ならば
| x ← x+ 1
| y ← y- 1
を実行する

if ( x < 3 ) {
   x = x + 1;
}
もし変数xの値が3より小さいなら、xに1を足す

 

(そうでなければ、何もしない)

もしx<3ならばx ← x+1を実行する
if ( x < 3 ) x = x + 1;
もし変数xの値が3より小さいなら、xに1を足す

 

(そうでなければ、何もしない)

 

〈条件〉 が成り立つときにある処理を実行し、〈条件〉 が成り立たないときに別の処理を実行する場合は、次のように『ならば』と『そうでなければ』を組み合わせて指定します。

【共通テスト手順記述標準言語 (DNCL) 】

一般形
もし 〈条件〉 ならば
| 〈処理 1〉
を実行し,そうでなければ
| 〈処理 2〉
を実行する
もしx<3ならば
| x ← x+ 1
を実行し,そうでなければ
| x ← x- 1
を実行する
もし 〈条件〉 ならば 〈処理 1〉 を実行し,そうでなければ 〈処理 2〉 を実行する

(※処理が1行しかない場合、|無しで書くこともできる)

もしx<3ならば x ← x+1 を実行し,
そうでなければ x ← x- 1 を実行する

【JavaScript】

キーワードelseを用います。elseの後の処理は中かっこ{ }で囲みます。

DNCL JavaScript 実行結果
もしx<3ならば
| x ← x+ 1
を実行し,そうでなければ
| x ← x- 1
を実行する
if (x < 3) {
   x = x + 1;
} else {
   x = x - 1;
}
xが3未満ならxに1を足し、そうでなければxから1を引く。
もしx<3ならば「3未満」を表示し,そうでなければ「3以上」を表示する
if (x < 3) {
   x = x + 1;
} else {
   x = x - 1;
}

xが3未満ならxに1を足し、そうでなければxから1を引く。

 

※JavaScriptは改行を特別扱いしないため、左の書き方から改行を取り除けば1行にすることができるが、読みにくいため推奨しない。

 

条件分岐の中で複数の条件で実行する処理を切り替えたい場合は、次のように『ならば』と『そうでなければ』 の間に『そうでなくもし』を使って条件を追加します。

【共通テスト手順記述標準言語 (DNCL) 】

一般形
もし 〈条件 1〉 ならば
| 〈処理 1〉
を実行し,そうでなくもし 〈条件 2〉 ならば
| 〈処理 2〉
を実行し,そうでなければ
| 〈処理 3〉
を実行する
もしx=3ならば
| x ← x+ 1
を実行し,そうでなくもし y > 2 ならば
| y ← y+ 1
を実行し,そうでなければ
| y ← y- 1
を実行する
もし 〈条件 1〉 ならば 〈処理 1〉 を実行し,

そうでなくもし 〈条件 2〉 ならば 〈処理 2〉 を実行し,

そうでなければ 〈処理 3〉 を実行する

(※処理が1行しかない場合、|無しで書くこともできる)

もしx=3ならばx ← x+1 を実行し,

そうでなくもしy>2ならば y ← y+1 を実行し,

そうでなければ y ← y- 1 を実行する

  

【JavaScript】

キーワードelse ifを用います。else ifはいくつ使っても構いません。elseは、すべてのelse ifの後に使います。

DNCL JavaScript 実行結果
もしx=3ならば
| x ← x+ 1
を実行し,そうでなくもし y > 2 ならば
| y ← y+ 1
を実行し,そうでなければ
| y ← y- 1

を実行する
if  ( x == 3 ) {
   x = x + 1;
} else if ( y > 2 ) {
   y = y + 1;
} else {
   y = y - 1;
}
もしx=3ならば、xに1を足す。

そうでなく、yが2より大きければ、yに1を足す。

そうでなければ(xが3でなく、yが2以下)、yから1を引く

もしx=3ならばx ← x+1 を実行し,

そうでなくもしy>2ならば y ← y+1 を実行し,

そうでなければ y ← y- 1 を実行する

if  ( x == 3 ) {
   x = x + 1;
} else if ( y > 2 ) {
   y = y + 1;
} else {
   y = y - 1;
}

もしx=3ならば、xに1を足す。

そうでなく、yが2より大きければ、yに1を足す。

そうでなければ(xが3でなく、yが2以下)、yから1を引く

 

※JavaScriptは改行を特別扱いしないため、左の書き方から改行を取り除けば1行にすることができるが、読みにくいため推奨しない。

 

4.2. 反復(繰り返し)

【条件繰り返し文:前判定】

〈条件〉が成り立つ間、〈処理〉を繰り返し実行します。
〈処理〉を実行する前に 〈条件〉が成り立つかどうか判定されるため、〈処理〉が1回も実行されないこと があります。

【共通テスト手順記述標準言語 (DNCL) 】

一般形
〈条件〉 の間,
| 〈処理〉
を繰り返す
x<10の間,
| gokei ← gokei+ x
| x ← x+ 1
を繰り返す

【JavaScript】

DNCL JavaScript 実行結果
x<10の間,
| gokei ← gokei+ x
| x ← x+ 1
を繰り返す
while ( x < 10 ) {
   gokei = gokei + x;
   x = x + 1;
}

 

最初のxの値が1で、gokeiが0だとすると、

1から9までの値の和を求める。

 

繰り返しを終えたとき、

変数xは10になっている。

変数gokeiは45になっている。

 

【条件繰り返し文:後判定】

〈条件〉 が成り立つまで、 〈処理〉 を繰り返し実行します。
〈処理〉を実行した後に 〈条件〉が成り立つかどうか判定されるため、〈処理〉は少なくとも1回は実行されます。

【共通テスト手順記述標準言語 (DNCL) 】

一般形
繰り返し,
| 〈処理〉
を, 〈条件〉 になるまで実行する
繰り返し,
| gokei ← gokei+ x
| x ← x+ 1
を,x ≧ 10 になるまで実行する

【JavaScript】

JavaScriptでは、「〜まで繰り返す(=〜になったら止める)」ではなく、「〜の間、繰り返す」という書き方なので、条件式の書き方がDNCLとは異なります。

DNCL JavaScript 実行結果
繰り返し,
| gokei ← gokei+ x

| x ← x+ 1
を,x ≧ 10 になるまで実行する
do {
   gokei = gokei + x;
   x = x + 1;
} while( x< 10 );

 

xに、1から9まで値を加えながら、それとgokeiの和を求める。

【順次繰り返し文】

順次繰返し文は, 〈変数〉 の値を増やしながら(または減らしながら)、〈処理〉 を繰返し実行します。

【共通テスト手順記述標準言語 (DNCL) 】

一般形
〈変数〉 を 〈初期値〉 から 〈終了値〉 まで 〈差分〉 ずつ増やしながら,
| 〈処理〉

を繰り返す
xを1から10まで1ずつ増やしながら,
| gokei ← gokei+ x
を繰り返す

 

【JavaScript】

範囲(range)という種類のデータを作る関数range()を用います。

DNCL JavaScript 実行結果
xを1から10まで1ずつ増やしながら,
| gokei ← gokei+ x
を繰り返す
for (x=1; x<10; x++) {
   gokei = gokei + x;
}
1か9までxの値を変えながら、gokeiに足す。

 

開始時に変数gokeiが0なら、

終了時にgokeiは45になっている。

xは10になっている。