この章では、C++における演算子と式について詳しく学びます。演算子は、変数や値に対してさまざまな操作を行うために使われ、C++プログラムの基本的な機能の1つです。この章では、算術演算子、比較演算子、論理演算子、三項演算子、演算子の優先順位と結合性について解説します。
目次
3.1 算術演算子
算術演算子は、数値に対して基本的な数学的操作を行うために使用されます。
演算子 | 説明 | 例 |
---|---|---|
+ | 加算 | a + b |
- | 減算 | a - b |
* | 乗算 | a * b |
/ | 除算 | a / b |
% | 剰余 | a % b |
例: 算術演算子
int a = 10;
int b = 3;
int sum = a + b; // 13
int diff = a - b; // 7
int prod = a * b; // 30
int quot = a / b; // 3
int rem = a % b; // 1
3.2 比較演算子
比較演算子は、2つの値を比較し、真(true
)または偽(false
)を返します。
演算子 | 説明 | 例 |
---|---|---|
== | 等しいか比較 | a == b |
!= | 等しくないか比較 | a != b |
> | より大きいか比較 | a > b |
< | より小さいか比較 | a < b |
>= | 以上か比較 | a >= b |
<= | 以下か比較 | a <= b |
例: 比較演算子
int x = 5;
int y = 10;
bool result1 = (x > y); // false
bool result2 = (x <= y); // true
3.3 論理演算子
論理演算子は、複数の条件を組み合わせて判定するために使用されます。
演算子 | 説明 | 例 |
---|---|---|
&& | 論理AND | a && b |
! | 論理NOT | !a |
例: 論理演算子
bool condition1 = true;
bool condition2 = false;
bool result1 = condition1 && condition2; // false
bool result2 = condition1 || condition2; // true
bool result3 = !condition1; // false
3.4 三項演算子の使用法
三項演算子(条件演算子)は、条件によって異なる値を返すコンパクトな条件式です。
三項演算子の構文
condition ? trueの場合の値 : falseの場合の値;
例: 三項演算子
int a = 10;
int b = 5;
int max = (a > b) ? a : b; // 条件a > bがtrueならaを、falseならbを返す
3.5 演算子の優先順位と結合性
C++には演算子の優先順位があり、複数の演算子が含まれる式では、優先順位が高いものから先に評価されます。演算子には左結合性と右結合性があります。左結合性では、左から右へ評価され、右結合性では右から左へ評価されます。
演算子の優先順位
演算子 | 説明 | 結合性 |
---|---|---|
* , / , % | 乗算、除算、剰余 | 左結合 |
+ , - | 加算、減算 | 左結合 |
< , > , <= , >= | 比較演算子 | 左結合 |
== , != | 等値比較 | 左結合 |
&& | 論理AND | 左結合 |
?: | 三項演算子 | 右結合 |
例: 優先順位の確認
int a = 5 + 2 * 3; // 乗算が先に評価され、結果は11
3.6 式の評価と短絡評価
式は、演算子を使って評価される項目の集まりです。C++では、短絡評価という概念があります。論理演算子&&
や||
を使うと、左側の条件だけで結果が確定する場合、右側の式は評価されません。
例: 短絡評価
int a = 0;
int b = 10;
if (a != 0 && b / a > 1) {
// aが0なので、b / aは評価されない(エラーが発生しない)
}
まとめ
この章では、C++における演算子と式の基本的な使い方とその評価順序について学びました。これらを理解することで、より複雑な条件分岐や計算を行うことができるようになります。次の章では、C++の制御フローについて詳しく学んでいきます。