4.1. 条件分岐

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

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

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

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

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

【Python】

キーワードifの後ろに条件式(比較演算や論理演算の式)を書きます。条件式の後ろには必ず『:』(コロン)を入れます。

DNCL Python 実行結果
もしx<3ならば
| x ← x+ 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 を実行する

【Python】

キーワードelseを用います。elseの直後に『:』(コロン)を付けます。

DNCL Python 実行結果
もし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以上」を表示する

print("3未満") if x < 3 else print("3以上")
xが3未満なら「3未満」を表示し、そうでなければ「3以上」を表示する。

 

この書き方では、実行できない処理・計算がある(代入など)。

 複数の条件で実行する処理を切り替える

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

【共通テスト手順記述標準言語 (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 を実行する

 【Python】

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

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

if x == 3:
   x = x + 1
elif 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を表示し,
そうでなくもしy>2ならばyを表示し,
そうでなければx,yを表示する
 


print(x) if x == 3 else print(y) if y > 2 else print(x,y)
もしx=3ならばxを表示しする。

そうでなくもしy>2ならばyを表示する。

そうでなければx,yを表示する

 

この書き方では、実行できない処理・計算がある(代入など)。

4.2. 反復(繰り返し) 

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

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

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

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

【Python】

DNCL Python 実行結果
x<10の間,
| gokei ← gokei+ x
| x ← x+ 1
を繰り返す

while x < 10:
   gokei = gokei + x
   x = x + 1
最初のxの値が1なら、

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

 

繰り返しが終了したとき、

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

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

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

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

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

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

【Python】

Pythonには後判定の繰り返しのための記法は無いため、以下のような書き方で代わりにします。

DNCL Python 実行結果
繰り返し,
| gokei ← gokei+ x
| x ← x+ 1
を,x ≧ 10 になるまで実行する

while True:
   gokei = gokei + x
   x = x + 1
   if x >= 10:
      break;
xに1を加えながら、xとgokeiの和を求める。

開始時にxが1、gokeiが0なら、終了時に変数xは10になっている。変数gokeiは45になっている。 

必ず1回は実行するためにwhile True:とし、繰り返しの最後に条件を指定して繰り返しから抜け出す(break)ようにする。

 

【順次繰り返し文】

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

 

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

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

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

【Python】

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

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

for x in range(1,11,1):
   gokei = gokei + x
1から10までの値の和を、gokeiに加える。

 

繰り返しが終了したとき、変数xは10になっている。変数gokeiは55になっている。

 

range()の括弧の中の1つ目の1が開始の値。3つ目の1が「1ずつ」の値。