【C++】文とは?if, for, whileなど主要な制御文をまとめて解説

目次

はじめに

C++のプログラムは、セミコロン(;)で終わる文(statement)を上から下へ順番に実行していくことで成り立っています。C++には、単純な計算を行う文から、条件によって処理の流れを変える(制御する)ための制御文まで、様々な種類の文があります。

この記事では、C++プログラミングの基本となる、主要な文の種類と使い方を網羅的に解説します。


1. 式文 (Expression Statement)

値の計算、代入、関数呼び出しなど、何らかの「式 (expression)」の最後にセミコロン ; を付けたものです。最も基本的な文です。

#include <iostream>

int main() {
    int x;
    x = 10 + 20;      // 代入文
    std::cout << x;   // 関数呼び出し文
    return 0;         // return文
}

2. 複合文(ブロック)

複数の文を波括弧 {} で囲んだものです。ブロックとも呼ばれ、if文やfor文などの制御文と組み合わせて使われるほか、変数のスコープを限定するためにも使われます。

{ // ブロックの開始
    int local_variable = 100;
    // ... この変数はブロック内でのみ有効 ...
} // ブロックの終了

3. 制御文(分岐)

プログラムの実行フローを、条件に応じて分岐させます。

if

条件式が true の場合に、特定の処理を実行します。else ifelse と組み合わせることで、より複雑な条件分岐が可能です。

int score = 85;
if (score >= 90) {
    std::cout << "優" << std::endl;
} else if (score >= 75) {
    std::cout << "良" << std::endl;
} else {
    std::cout << "可" << std::endl;
}

// 初期化を伴うif文 (C++17)
if (int result = score / 10; result >= 8) {
    std::cout << "高得点です。" << std::endl;
}

switch

一つの変数の値に応じて、多数の選択肢に分岐する場合に使います。条件は整数型または列挙型でなければなりません。

int rank = 2;
switch (rank) {
    case 1:
        std::cout << "金メダル" << std::endl;
        break;
    case 2:
        std::cout << "銀メダル" << std::endl;
        break;
    case 3:
        std::cout << "銅メダル" << std::endl;
        break;
    default:
        std::cout << "入賞" << std::endl;
        break;
}

4. 制御文(繰り返し)

特定の処理を、条件が満たされる間、繰り返し実行します。

while

ループに入るに条件式を評価します。条件が最初からfalseの場合、一度も実行されません。

int i = 0;
while (i < 3) {
    std::cout << i << " "; // -> 0 1 2
    i++;
}

do-while

ループの処理を一度実行したで条件式を評価します。必ず最低1回は処理が実行されます。

int j = 5;
do {
    std::cout << j << " "; // -> 5
    j++;
} while (j < 3);

for

初期化、継続条件、更新処理をまとめて記述できる、最も一般的なループ文です。

for (int k = 0; k < 3; k++) {
    std::cout << k << " "; // -> 0 1 2
}

範囲for文 (Range-based for loop)

vectorなどのコンテナや配列の全要素を、先頭から順番に処理する場合に使う、非常に簡潔で安全な構文です。

#include <vector>
std::vector<int> data = {10, 20, 30};
for (int value : data) {
    std::cout << value << " "; // -> 10 20 30
}

5. ジャンプ文

プログラムの実行フローを、別の場所に強制的にジャンプさせます。

  • break;: switch文や、現在実行中のループfor, whileなど)を即座に中断し、そのブロックの外に抜けます。
  • continue;: ループ内の残りの処理をスキップし、次の回のループ(次のイテレーション)に直接進みます。
  • return;: 現在の関数を終了し、呼び出し元に制御を戻します。値を返すこともできます。

6. try-catch ブロック

例外処理を行うための特殊な文です。tryブロック内で発生した例外を、catchブロックで捕捉して対処します。

#include <stdexcept>
try {
    throw std::runtime_error("エラー発生");
}
catch (const std::exception& e) {
    std::cerr << "例外を捕捉: " << e.what() << std::endl;
}

まとめ

今回は、C++のプログラムを構成する基本的な「文」について、その種類と役割を網羅的に解説しました。これらの制御文を正しく組み合わせることで、単純な逐次実行だけでなく、条件に応じた分岐や、効率的な繰り返しといった、複雑なロジックを構築することができます。

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

この記事を書いた人

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

目次