プログラムの一部を繰り返したり、条件に応じて実行する箇所を切り替える ことができる。これを制御構造という。代表的な制御構造を以下に示す。
while
while (条件式) { 繰り返し本体 }
という書式で、条件式 が真(Cの場合0以外)を返す間 繰り返し本体 を繰り返して実行する。
if 〜 else if 〜 else 〜
if (条件式1) { 本体1 } else if (条件式2) { 本体2 } else { 本体3 }
という書式で、条件式1 が真なら 本体1 を、
そうでなくて 条件式2 が真なら 本体2 を、
以上いずれでもなければ 本体3 を実行する。
else if
はいくつあってもかまわない。
else
はなくてもかまわない。
Rubyでは elsif
と書いたが、Cでは else if
なので書き間違えないように気をつけること。
for
for (初期化式; 条件式; 繰り返し実行式) { 繰り返し本体 }
という書式で 繰り返し本体 を指定された間繰り返す。 たとえば、
int i; : : for (i=0; i<10; i++) { 本体 }
とすると、for文に来たとき最初に一回だけ i=0
を実行
する。さらに i<10
という条件が成り立っている間
本体を実行し、終わったところで i++
を
実行する。さらに条件式の判定に戻り、i<10
が成り立っ
ていればまた本体を繰り返す。結果として、i=0, 1, 2, ...,
9
の10回だけ繰り返しを行なうことになる。
条件式には数値比較などの比較演算子が使える。
演算子 | 意味 |
---|---|
== | 数値的に等しい |
!= | 数値的に等しくない |
< | 左辺が右辺より小さい |
<= | 左辺が右辺以下である |
> | 左辺が右辺より大きい |
>= | 左辺が右辺以上である |
代入のイコール(=)と比較のイコールイコール(==)はまったく違うので 間違えないように気をつける。
条件を繋ぐ意味の関係演算子には以下のものがある。
演算子 | 意味 |
---|---|
&& | かつ |
|| | または |
! | 否定 (not) |
例:
if (x==5 || x==3) { /* もし xが5に等しいか xが3に等しいなら この部分を実行 */ }
if (x==5 && y==3) { /* もし xが5に等しく なおかつ yが3に等しいなら この部分を実行 */ }
if (! (x==3)) { /* もし xが3に等しくないならこの部分を実行 */ }