制御構文をマスターしよう! (4/5)
作成:2011-02-01 13:27
更新:2011-02-01 13:27
更新:2011-02-01 13:27
■条件に合わせて繰り返す「while」文
続いて、「繰り返し」についてです。繰り返しも2種類の構文があります。簡単なのは、条件をチェックして繰り返しを続ける「while」という文でしょう。これは以下のような書き方が用意されています。
◯while文の基本形
◯do-while文の基本形
条件をチェックし、それが正しいと(つまり値がゼロでない場合)、繰り返しが続けられます。そして正しくないと判断されたら、構文を抜けて次へと進みます。割と単純ですね。――では、利用例を下に掲載しておきましょう。これは、ゼロから変数nまでの整数をすべて合計して表示するサンプルです。nの値をいろいろと変更して試してみましょう。
ここでは、いくつかの新しい記号が登場しています。whileで実行している処理を見てみましょう。こんな具合に書かれていますね?
その後の「++」というのは、「値を1増やす」という働きをします。同じようなものに「--」という「値を1減らす」というものもあります。――ただし、これを使う場合は、記号をつける位置に注意が必要です。
「count++」というように変数の後に書くと、「その値を取り出して利用した後で1増やす」ことになります。「++count」というように変数の前に書くと、「1増やしてから値を取り出す」という事になります。この違いは、意外に大きいので注意しましょう。
下のリストに「++countとした場合」のコードも上げておきます。微妙に違っているのがわかるでしょう?
◯while文の基本形
while ( 条件 )
……繰り返す処理……
◯do-while文の基本形
do {書き方が2つありますが、これは「条件をどこでチェックするか」の違いです。前者の書き方は、繰り返し部分を実行する前に条件をチェックします。そして後者は、繰り返し部分を実行した後で条件をチェックします。
……繰り返す処理……
} while ( 条件 );
条件をチェックし、それが正しいと(つまり値がゼロでない場合)、繰り返しが続けられます。そして正しくないと判断されたら、構文を抜けて次へと進みます。割と単純ですね。――では、利用例を下に掲載しておきましょう。これは、ゼロから変数nまでの整数をすべて合計して表示するサンプルです。nの値をいろいろと変更して試してみましょう。
ここでは、いくつかの新しい記号が登場しています。whileで実行している処理を見てみましょう。こんな具合に書かれていますね?
res += count++;「+=」というのは、イコールの代入と四則演算の記号が一緒になったもので、「右辺の値を左辺に足す」働きをします。これは、四則演算のすべての記号について「+=」「-=」「*=」「/=」「%=」といった記号が用意されています。
その後の「++」というのは、「値を1増やす」という働きをします。同じようなものに「--」という「値を1減らす」というものもあります。――ただし、これを使う場合は、記号をつける位置に注意が必要です。
「count++」というように変数の後に書くと、「その値を取り出して利用した後で1増やす」ことになります。「++count」というように変数の前に書くと、「1増やしてから値を取り出す」という事になります。この違いは、意外に大きいので注意しましょう。
下のリストに「++countとした場合」のコードも上げておきます。微妙に違っているのがわかるでしょう?
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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; }
※関連コンテンツ