削除された内容 追加された内容
Ajedony (トーク | 投稿記録)
→‎while文: ノートでの指摘を修正。
346 行
while (式)
の形で書かれます。ただし、下の記法は実行したい文がただ1つの文である時にしか用いることが
出来ません。一方、繰り返して行いたい動作が複数個ある時には、常に上の記法を用いることが必要となります。
<!--
実際には {} で囲まれたブロック自体が文であるので、この書き方は重複している?
-->
実際にはつまり2種類複数動作を繰り返して行いたい場合には、
while (式) {
1
2
・・・
N
}
と書く必要があります。
だけでなく、
while (式)
文1
while (式)
文2
としても実行することが出来ます。しかし、実際には実行速度の問題から、ほとんど常に上の書き方が用いられます。実は繰り返しの処理をすることは割合手間がかかる作業で、出来る限り1つにまとめた方が実行が速くなります。そのため、特に事情がない限り、上の書き方を用いるとよいでしょう。
 
while (式) でいう式とは、返り値を持つものならどんなものでも用いることが出来るため、いろいろな表現を含むことが起こりえます。while文は、式の値が真ならば、対応する文を実行し、偽であるなら、実行しません。式の値が最初から偽であった時には、対応する文は1度も実行されないことに注意が必要です。
 
while文の基本的な用いられ方は次のようになります。
370 ⟶ 367行目:
while (a < 5)
++a;
この例では、while文の中で、変数aの値を変化させ、その値が5より小さい間aの値を1つだけ増やすという処理がなされます。これは、何回かの処理を行うための基本的な記法であり、非常によく用いられます。そのため、この内容をより簡潔に書くことができるfor文と呼ばれる文も、C言語は提供しています。
 
*例
int a = 0;
while (a++ < 5);
これは、上の例と全く同じ内容を表していますが、少し書き方が複雑になっています。まず、++の演算子は、<演算子よりも優先度が高いことに注目します。ここで、変数の後につけられた++演算子は変数に1を加える演算を行うのですが、返り値として足し算が行われる前の変数の値を返すことに注目すると、
a++ < 5 は、最初は、 0 < 5 に対応することがわかります。次に、++演算子の効果でaに1が加えられます。0 < 5 が真であることから、対応する文が実行されるのですが、ここでは実行される分は空の文なので、再び、a++ < 5 が評価されます。このようにして、この記法が上の例と同じ内容を表していることがわかります。
 
*例