04:演算と条件分岐

はじめに

この章では、計算や比較、条件によって処理を分岐させる書き方を確認します。C言語で学んだ基本はそのまま使えますが、C++ならではの表現のしやすさにも注目していきましょう。


算術演算子の使い方

#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 3;

    cout << "a + b = " << a + b << endl;
    cout << "a - b = " << a - b << endl;
    cout << "a * b = " << a * b << endl;
    cout << "a / b = " << a / b << endl;
    cout << "a % b = " << a % b << endl;

    return 0;
}

解説


比較演算子を使った判定

#include <iostream>
using namespace std;

int main() {
    int score = 75;

    if (score >= 60) {
        cout << "合格" << endl;
    } else {
        cout << "不合格" << endl;
    }

    return 0;
}

解説

Cとの違いについて

bool isPassed = true;
if (isPassed) {
    cout << "合格です。" << endl;
}

このように、C++ では 意図が明確に伝わる条件式 が書きやすくなっています。


bool型を使った条件分岐

#include <iostream>
using namespace std;

int main() {
    bool isLoggedIn = false;

    if (isLoggedIn) {
        cout << "ようこそ" << endl;
    } else {
        cout << "ログインしてください" << endl;
    }

    return 0;
}

解説


理解度チェック

問題1(04_check_odd_even.cpp)

次のコードの出力を考えてください。

#include <iostream>
using namespace std;

int main() {
    int x = 5;

    if (x % 2 == 0) {
        cout << "偶数" << endl;
    } else {
        cout << "奇数" << endl;
    }

    return 0;
}
正解・解説を見る
奇数

5 を 2 で割った余りは 1 なので「奇数」と表示されます。


問題2(04_grade_evaluation.cpp)

次のコードの出力を考えてください。

#include <iostream>
using namespace std;

int main() {
    int score = 85;

    if (score >= 80) {
        cout << "優" << endl;
    } else if (score >= 60) {
        cout << "良" << endl;
    } else {
        cout << "不可" << endl;
    }

    return 0;
}
正解・解説を見る

85 は 80 以上なので「優」と表示されます。


問題3(04_membership_check.cpp)

次のコードの出力を考えてください。

#include <iostream>
using namespace std;

int main() {
    bool isMember = true;

    if (isMember) {
        cout << "会員価格が適用されます。" << endl;
    } else {
        cout << "通常価格です。" << endl;
    }

    return 0;
}
正解・解説を見る
会員価格が適用されます。

isMember が true なので会員向けのメッセージが表示されます。


演習問題

問題4(04_check_10.cpp)

ユーザーから整数を1つ入力させ、その数が10以上なら「10以上」、それ未満なら「10未満」と表示するプログラムを書きなさい。

解答例を見る
// 04_check_10.cpp
#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "整数を入力してください:";
    cin >> number;

    if (number >= 10) {
        cout << "10以上" << endl;
    } else {
        cout << "10未満" << endl;
    }

    return 0;
}

問題5(04_max_of_two.cpp)

ユーザーから2つの整数を入力させ、大きい方の値を表示するプログラムを書きなさい。

解答例を見る
// 04_max_of_two.cpp
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cout << "2つの整数を入力してください:";
    cin >> a >> b;

    if (a > b) {
        cout << "大きい方は " << a << endl;
    } else {
        cout << "大きい方は " << b << endl;
    }

    return 0;
}

まとめ