C++のネストされたfor文とif文の組み合わせをわかりやすく解説

C++のfor文は、繰り返し処理を効率的に行うための基本構文ですが、for文を入れ子(ネスト)にして、さらにif文を組み合わせることで、条件によって処理を分岐させることができます

本記事では、ネストされたfor文とif文を組み合わせて、処理の流れを制御する方法について、具体的なコード例とともにわかりやすく解説いたします。


目次

基本例:ネストされたfor文

#include <iostream>
using namespace std;

int main()
{
    for (int row = 0; row < 4; row++) {
        for (int column = 0; column < 2; column++) {
            cout << "row: " << row << ", column: " << column << endl;
        }
    }

    return 0;
}

このコードは、外側のrowループと内側のcolumnループによって、すべての組み合わせを表示します。


応用例:ネストされたfor文+if文で条件分岐

次に、if文を組み合わせて、特定の条件に該当する場合だけ追加のメッセージを表示する例を見てみましょう。

#include <iostream>
using namespace std;

int main()
{
    for (int row = 0; row < 4; row++) {
        for (int column = 0; column < 2; column++) {
            cout << "row: " << row << ", column: " << column << endl;

            if (row == column) {
                cout << "※ rowとcolumnの値が等しいです。" << endl;
            }
        }
    }

    return 0;
}

実行結果(一部抜粋)

row: 0, column: 0
※ rowとcolumnの値が等しいです。
row: 0, column: 1
row: 1, column: 0
row: 1, column: 1
※ rowとcolumnの値が等しいです。
...

解説:if文を加える効果とは

このように、if文を内側のループの中に入れることで、特定の条件に該当したときだけ処理を追加できます。

よく使われる組み合わせ例

  • if (i == j):同じインデックスのとき
  • if (value % 2 == 0):偶数のときだけ処理
  • if (i * j > 10):積が一定値を超えたとき など

応用アイデア:表の中で特定のマスだけ表示変更

以下のようなコードを書けば、表の中で特定のマス(たとえば左上や右下)だけ別の表示に変更できます。

for (int row = 0; row < 5; row++) {
    for (int col = 0; col < 5; col++) {
        if (row == col) {
            cout << "● ";
        } else {
            cout << "○ ";
        }
    }
    cout << endl;
}

まとめ

  • ネストされたfor文は、2次元の繰り返し処理に適しています。
  • if文を組み合わせることで、条件に応じた処理分岐が可能になります。
  • 複雑な表・グリッド・組み合わせ処理の中で、柔軟な条件制御を行う際に非常に有効です。

処理の流れを正しく把握し、コードの可読性を保ちながら、条件分岐と繰り返しを効果的に使い分けましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次