libro
www.tuyano.com
Objective-C初心者のためのC言語超入門

制御構文をマスターしよう! (4/5)

作成:2011-02-01 13:27
更新:2011-02-01 13:27

■条件に合わせて繰り返す「while」文

続いて、「繰り返し」についてです。繰り返しも2種類の構文があります。簡単なのは、条件をチェックして繰り返しを続ける「while」という文でしょう。これは以下のような書き方が用意されています。

◯while文の基本形
while ( 条件 )
    ……繰り返す処理……

◯do-while文の基本形
do {
    ……繰り返す処理……
} while ( 条件 );
書き方が2つありますが、これは「条件をどこでチェックするか」の違いです。前者の書き方は、繰り返し部分を実行する前に条件をチェックします。そして後者は、繰り返し部分を実行した後で条件をチェックします。

条件をチェックし、それが正しいと(つまり値がゼロでない場合)、繰り返しが続けられます。そして正しくないと判断されたら、構文を抜けて次へと進みます。割と単純ですね。――では、利用例を下に掲載しておきましょう。これは、ゼロから変数nまでの整数をすべて合計して表示するサンプルです。nの値をいろいろと変更して試してみましょう。

ここでは、いくつかの新しい記号が登場しています。whileで実行している処理を見てみましょう。こんな具合に書かれていますね?
res += count++;
+=」というのは、イコールの代入と四則演算の記号が一緒になったもので、「右辺の値を左辺に足す」働きをします。これは、四則演算のすべての記号について「+=」「-=」「*=」「/=」「%=」といった記号が用意されています。

その後の「++」というのは、「値を1増やす」という働きをします。同じようなものに「--」という「値を1減らす」というものもあります。――ただし、これを使う場合は、記号をつける位置に注意が必要です。

count++」というように変数の後に書くと、「その値を取り出して利用した後で1増やす」ことになります。「++count」というように変数の前に書くと、「1増やしてから値を取り出す」という事になります。この違いは、意外に大きいので注意しましょう。

下のリストに「++countとした場合」のコードも上げておきます。微妙に違っているのがわかるでしょう?

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※変数nまでの合計を計算する

#include <stdio.h>

int main (int argc, const char * argv[]) {
    int n = 1234;
	int res = 0;
	int count = 0;
	while (count <= n) {
		res += count++;
	}
	printf("%i total: %i",n,res);
	return 0;
}


※++countにした場合

#include <stdio.h>

int main (int argc, const char * argv[]) {
    int n = 123;
	int res = 0;
	int count = 0;
	while (count < n) {
		res += ++count;
	}
	printf("%i total: %i",n,res);
	return 0;
}

※関連コンテンツ

「Objective-C初心者のためのC言語超入門」に戻る