【C++】for文の使い方【基本と応用】
for文の基本
C++の「for文」は、指定された回数だけ繰り返し処理を行うための制御構文です。基本的な構文は次の通りです。
for (初期化; 条件式; 更新) {
// 繰り返し処理する内容
}
- 初期化:ループが始まる前に1度だけ実行される処理。
- 条件式:ループを続ける条件を設定。条件が真の場合、ループは実行されます。
- 更新:ループが1回終わるたびに実行される処理。一般的にはカウンタ変数を更新します。
たとえば、0から4まで繰り返す場合、次のように書けます。
for (int i = 0; i < 5; i++) {
std::cout << i << std::endl;
}
このコードでは、iが0から4まで増加し、そのたびにiの値が出力されます。
for文の例
さらに具体的な例を見てみましょう。
for (int i = 1; i <= 10; i++) {
std::cout << "数字: " << i << std::endl;
}
このコードは、1から10までの数字を順番に表示します。「i <= 10」が条件式なので、iが10以下の間は繰り返し処理を行います。
次に、リストの要素を順番に表示する例を見てみましょう。
int numbers[] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
std::cout << "番号 " << i + 1 << ": " << numbers[i] << std::endl;
}
このコードでは、配列「numbers[]」の各要素を順番に表示しています。
入れ子のfor文
「for文」を入れ子にして使うこともできます。入れ子のfor文は、1つのループの中に別のfor文を組み込む方法です。
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
std::cout << "i = " << i << ", j = " << j << std::endl;
}
}
このコードでは、iが1から3まで繰り返され、その中でjも1から3まで繰り返されます。出力結果は次のようになります。
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
入れ子にすることで、2次元的な処理を行うことができます。たとえば、マトリックスを表示する場合に有効です。
for文の応用
「for文」を応用することで、より複雑な処理を効率よく行うことができます。
逆順での繰り返し
for文は逆順で繰り返すことも可能です。例えば、10から1まで逆順にカウントダウンする場合、次のように書きます。
for (int i = 10; i >= 1; i--) {
std::cout << i << std::endl;
}
範囲指定での繰り返し
C++11以降では、範囲ベースのfor文も使用できます。これにより、配列やコンテナをより簡単に処理できます。
std::vector vec = {1, 2, 3, 4, 5};
for (int num : vec) {
std::cout << num << std::endl;
}
範囲ベースのfor文では、配列やリストなどの要素を順番に取り出して処理することができます。配列やコンテナのサイズを気にせずに使えるので便利です。