プログラムは通常上から下へ一直線に解釈実行される。 この流れを変えるのが制御構造 である。
if〜then〜elsif〜else〜end
if a1 [then] b1 elsif a2 b2 else b3 end
条件 a1 が成立している(真)ならばb1を実行。a1が成り立たなくて(偽 で)、a2が成立していればb2を実行。いずれでもなければ b3 を実行する。 elsif と else は不要なら省略できる。
while〜end、until〜end
while a1 b1 end
条件 a1 が真である間 b1 を実行する。untilは逆に
until a1 b1 end
条件 a1 が偽である間b1を実行する。
case〜when〜when〜when〜else〜end
case a1 when b1,[,b2,..] c1 when d1 c2 else c3 end
最初の a1 の値を順次 when の直後と比べて行き、マッチしたときに その直後の文を実行する。たとえば、a1 が b2 に等しいかマッチしたら c1を、a1がd1に等しいかマッチしたら c2 を、どれでもなければ c3 を実行 する。elseは必要なければ省略可能。
for〜end
for var in obj 文 end
ここでobjは単なる変数でなく、複数の値を持っている「配列」 などを指定する。すると、objの先頭の値から順に var 変数に代入してそ の個数だけ 文 をくり返す。実際の使用例は来週以降覚えて行く。
break、next、redo
これらは、while/until/for ループの中で使う。 break はそこでループの実行を中止しループを終了する。 next はループの残りを実行せず、次のループに突入する。 redoはその回のループを先頭からやりなおす(つまりループ入口の 条件判断はしない)。
return
メソッドを終了する。メソッドについては後日。