Light C | ← → 目次 索引 |
次の制御文 (control statement) とラベル (label) を使用できます。
if <条件式 1> <条件式 1> が真であれば、<文またはブロック 1> が実行されます。
<条件式 1> が偽で <条件式 2> が真であれば、<文またはブロック 2> が実行されます。<条件式 1> も <条件式 2> も偽で <条件式 3> が真であれば、<文またはブロック 3> が実行されます。このように else if 節はいくつでも続けられます。
最後に、if 節とすべての else if 節が偽であれば、<文またはブロック Z> が実行されます。
それぞれの <条件式> には整数式を指定します。この整数式が 0 以外に評価されれば真、0 に評価されれば偽と見なされます。
switch (<判定式>) { <判定式>には int 型の式を指定します。その式の値が <値 1>と等しければ、制御は <文またはブロック 1>の先頭に移動します。式の値が <値 2>と等しければ、制御は <文またはブロック 2>の先頭に移動します。同様の case ラベルをいくつでも記述できます。case に指定する <値>が重複してはなりません。
<判定式>の値がどの case 値にも一致しない場合、制御は default ラベルがあればそこに移動し、default ラベルがなければ最後の}の次に移動します。
break があると、制御は最後の}の次に移動します。
条件分岐
<文またはブロック 1>
else if <条件式 2>
<文またはブロック 2>
else if <条件式 3>
<文またはブロック 3>
...
else
<文またはブロック Z>
case <値 1>:
<文またはブロック 1>...
[break;]
case <値 2>:
<文またはブロック 2>...
[break;]
...
default:
<文またはブロック Z>...
}
ループ
// 0 〜 9 を表示する | |
int i; | |
for ( i = 0; i < 10; i++ ) | |
printf( "i=%d\n", i ); |
Light C では、<初期化式> で変数を宣言することもできます。
// 上のコード例と同じ | |
for ( int i = 0; i < 10; i++ ) | |
printf( "i=%d\n", i ); |
メモ ただし C99 仕様とは異なり、<初期化式> で宣言された変数のスコープは、for 文内にとどまらず、同一関数内の以降の部分すべてに渡ります (過去の C++ の仕様と同じ)。
while (<条件式>) <文またはブロック> の途中に break または continue 文 (後述) を含めることもできます。
<条件式> は省略できません。常に真にしたい場合は定数の 1 などを指定します。<文またはブロック> は空文 (「;」だけの記述) でもかまいません。
do break
for、while、do、switch の <文またはブロック> の中に記述します。break 文は、制御を for、while、do、switch の次の文に移動します。
continue
for、while、do の <文またはブロック> の中に記述します。continue 文は、制御をループの先頭に戻します。for の場合、<更新式> は実行されません。
goto <ラベル名>;
下の構文で定義したラベルに制御を移動します。
<ラベル名>:
goto 文のジャンプ先として使用するラベルを定義します。
Light C では、ラベルは変数と同じように { } によるスコープの影響を受けます。
<文またはブロック>
<文またはブロック>
while (<条件式>);
その他
Copyright © Tama Software Ltd, 1999-2012. | ← → 目次 索引 |