C++ でネストされた if-else ステートメントを使用する

胡金庫 2023年10月12日
  1. C++ で単一の if-else ステートメントを使用して条件付きステートメントを実装する
  2. C++ でネストされた if-else ステートメントを使用してマルチ条件プログラム制御フローを実装する
C++ でネストされた if-else ステートメントを使用する

この記事では、C++ でネストされた if-else ステートメントを使用する方法のいくつかの方法について説明します。

C++ で単一の if-else ステートメントを使用して条件付きステートメントを実装する

条件付き実行を実装するために C++ 言語によって提供される 2 種類のステートメントがあります。1つは if ステートメントで、条件に基づいて制御フローを分岐します。もう 1つは、式を評価して実行可能なパスの 1つを選択する switch ステートメントです。if ステートメントは、単一の条件として表現することも、さまざまな実行パスを制御するマルチステップステートメントとして構築することもできます。単一のステートメントが条件に従う場合、ブロックスコープを区別するために中括弧 {} なしで記述することができることに注意してください。

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  vector<int> array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  if (array[0] > 1) cout << "array[0] <= 1" << endl;

  if (array[0] > 1) {
    cout << "array[0] <= 1" << endl;
    return EXIT_FAILURE;
  }

  return EXIT_SUCCESS;
}

C++ でネストされた if-else ステートメントを使用してマルチ条件プログラム制御フローを実装する

あるいは、ネストされた if-else ステートメントを相互にチェーンして、複雑な条件付き制御フローを実装することもできます。指定された if-else に中括弧がない場合は、ブロックが無条件で実行されることを意味することに注意してください。後者のシナリオは、複数の if ステートメントがネストされており、すべての if 条件に対応する else ブロックが同じレベルにあるわけではない場合に最も可能性が高くなります。このような問題を回避するには、中括弧スタイルを適用するか、IDE 固有のツールを使用してコード内のこのような問題を検出する必要があります。

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  vector<int> array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  if (array[4] > array[3]) {
    cout << "array[4] > array[3]" << endl;
    if (array[4] > array[5])
      cout << "array[4] > array[5]" << endl;
    else
      cout << "array[4] <= array[5]" << endl;
  }

  if (array[4] > array[3]) {
    cout << "array[4] > array[3]" << endl;
    if (array[4] > array[5])
      cout << "array[4] > array[5]" << endl;
    else if (array[4] > array[6])
      cout << "array[4] > array[6]" << endl;
    else if (array[4] < array[5])
      cout << "array[4] < array[5]" << endl;
    else
      cout << "array[4] == array[5]" << endl;
  }

  return EXIT_SUCCESS;
}

出力:

array[4] > array[3]
array[4] <= array[5]
array[4] > array[3]
array[4] < array[5]
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - C++ Statement