C++ の演算子と例:型とプログラムとは
オペレーターとは?
オペレーター オペランドで演算を実行するために使用される記号です。演算子はオペランドを操作します。操作は、数学的または論理的です。 C++ には、さまざまな操作を実行するためのさまざまな種類の演算子があります。
次の操作を検討してください:
a = x + y;
上記のステートメントでは、x と y はオペランドで、+ は加算演算子です。 C++ コンパイラが上記のステートメントに遭遇すると、x と y を加算し、結果を変数 a に格納します。
この C++ チュートリアルでは、次のことを学びます:
オペレーターとは?
C++ の演算子の種類
算術演算子
関係演算子
論理演算子
ビット演算子
代入演算子
その他のオペレーター
sizeof 演算子
コンマ演算子
条件演算子
演算子の優先順位
C++ の演算子の種類
C++ には主に 6 種類の演算子 があります
<オール>
算術演算子
関係演算子
論理演算子
ビット演算子
代入演算子
その他のオペレーター
算術演算子
これらは、数学/算術演算を実行するために使用される演算子のタイプです。それらには以下が含まれます:
オペレーター 説明 + 加算演算子オペランドに加算します。– 減算演算子減算 2
nd
1
st
からのオペランド オペランド.* 乗算演算子2 つのオペランドを乗算します./ 除算演算子.分子を分母で除算します.% モジュラス演算子除算後の剰余を返します.++ インクリメント演算子整数値を 1 増やします. — デクリメント演算子.整数値を 1 減らします.
例:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
int c;
cout << "a + b is :" << a+b << endl; //11+5
cout << "a - b is :" << a-b << endl; //11-5
cout << "a * b is :" << a*b << endl; //11*5
cout << "a / b is :" << a/b << endl; //11/5
cout << "a % b is :" << a%b << endl; //11%5
cout << "a++ is :" << a++ << endl; //11++
cout << "a-- is :" << a-- << endl; //12--
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>
コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
整数変数 a を宣言し、11 に初期化します。
整数変数 b を宣言し、5 に初期化します。
整数変数の宣言 c.
オペレーション a+b の値を他のテキストと一緒にコンソールに出力する
オペレーション a-b の値を他のテキストと一緒にコンソールに出力する
操作 a*b の値を他のテキストと一緒にコンソールに表示する
操作 a/b の値を他のテキストと一緒にコンソールに出力する
操作 a%b の値を他のテキストと一緒にコンソールに出力します。
オペレーション a++ の値を他のテキストと一緒にコンソールに出力する
操作 a– の値をコンソールに他のテキストと一緒に出力する
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
関係演算子
これらのタイプの演算子は、オペランドの比較を実行します。たとえば、どのオペランドが他のオペランドよりも大きいか、または小さいかを知る必要がある場合があります。それらには以下が含まれます:
オペレーター 説明 ==演算子と等しい.2 つのオペランド値の等価性をチェックします.!=等しくない演算子2 つのオペランド値の等価性をチェックします.> 大なり演算子左のオペランドの値が右のオペランドの値より大きいかどうかをチェックします.<より小さい演算子.値が次の値かどうかをチェックします左のオペランドの値が右のオペランドの値より小さい.>=演算子と等しいか等しい左のオペランドの値が右のオペランドの値より大きいか等しいかどうかをチェックします.<=演算子の値より小さいか等しいかどうかをチェックします.左のオペランドの値かどうかをチェックします右オペランドの値以下です。
例:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
cout << "a=11, b=5" << endl;
if (a == b) {
cout << "a == b is true" << endl;
}
else {
cout << " a == b is false" << endl;
}
if (a < b) {
cout << "a < b is true" << endl;
}
else {
cout << "a < b is false" << endl;
}
if (a > b) {
cout << "a > b is true" << endl;
}
else {
cout << "a > b is false" << endl;
}
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>
コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
整数変数 a を宣言し、11 に初期化します。
整数変数 b を宣言し、5 に初期化します。
変数 a と b の値を示すテキストをコンソールに出力します。
if 意思決定ステートメントで算術演算 a==b を実行して、それが真か偽かを知る。 { は、if ステートメントの本体の開始を示します。
操作 a==b が true の場合にコンソールに出力するテキスト。 endl は、最終行の C++ キーワードです。カーソルを押して、次の行で印刷を開始します。 } は、if ステートメントの本文の終わりを示します。
上記の if ステートメントの else 部分。演算 a==b が false の場合の対処方法を示します。
操作 a==b が false の場合にコンソールに出力するテキスト。 endl は、最終行の C++ キーワードです。カーソルを押して、次の行で印刷を開始します。 } は、else ステートメントの本文の終わりを示します。
if 意思決定ステートメントで算術演算 a
操作 a
上記の if ステートメントの else 部分。操作 a
操作 a
if 意思決定ステートメントで算術演算 a>b を実行して、それが真か偽かを知る。 { は、if ステートメントの本体の開始を示します。
操作 a>b が true の場合にコンソールに出力するテキスト。 endl は、最終行の C++ キーワードです。カーソルを押して、次の行で印刷を開始します。 } は、if ステートメントの本文の終わりを示します。
上記の if ステートメントの else 部分。操作 a>b が false の場合の対処方法を示します。
操作 a>b が false の場合にコンソールに出力するテキスト。 endl は、最終行の C++ キーワードです。カーソルを押して、次の行で印刷を開始します。 } は、else ステートメントの本文の終わりを示します。
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
論理演算子
論理演算子 2 つ以上の制約/条件を組み合わせます。論理演算子は、考慮中の元の条件の評価も補完します。それらには以下が含まれます:
オペレーター 説明 &&論理 AND 演算子。両方のオペランドがゼロでない場合、条件は真です。||論理 OR 演算子。オペランドの 1 つがゼロ以外の場合、条件は真です。!論理否定演算子。オペランドの論理状態を反転します。オペランドが true の場合、!演算子はそれを false にします。
例:
#include <iostream>
using namespace std;
int main()
{
int a = 5, b = 2, c = 6, d = 4;
if (a == b && c > d)
cout << "a equals to b AND c is greater than d\n";
else
cout << "AND operation returned false\n";
if (a == b || c > d)
cout << "a equals to b OR c is greater than d\n";
else
cout << "Neither a is equal to b nor c is greater than d\n";
if (!b)
cout << "b is zero\n";
else
cout << "b is not zero";
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール> コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出す
{ は、main() 関数の本体の開始を示します。
4 つの整数変数 a、b、c、d を宣言し、それらに異なる値を割り当てます。
if ステートメント内で &&(AND) 演算子を使用する。これは、a の値が b の値と等しい、および a の値が b の値より大きいという 2 つの条件を結合します。最初の条件は偽、2 番目の条件は真です。 False&&true は False であるため、if の結果は false です。
上記の if ステートメントが true の場合にコンソールに出力するテキスト。これは実行されません。
上記if文がfalseの場合に実行する部分
if ステートメントが false の場合にコンソールに出力するテキスト。これが実行されます。
|| の使用if ステートメント内の (OR) 演算子。これは、a の値が b の値と等しい、および a の値が b の値より大きいという 2 つの条件を結合します。最初の条件は偽、2 番目の条件は真です。 False||true は True であるため、if の結果は true です。
上記の if ステートメントが true の場合にコンソールに出力するテキスト。これが実行されます。
上記if文がfalseの場合に実行する部分
if ステートメントが false の場合にコンソールに出力するテキスト。これは実行されません。
変数の値が 0 かどうかを確認しています。
上記の if ステートメントが true の場合にコンソールに出力するテキスト。これは実行されません。
上記if文がfalseの場合に実行する部分
if ステートメントが false の場合にコンソールに出力するテキスト。これが実行されます。
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
ビット演算子
ビット演算子 オペランドに対してビットレベルの操作を実行します。まず、演算子がビット レベルに変換され、次にオペランドに対して演算が実行されます。加算や減算などの算術演算がビット レベルで実行されると、結果がより速く得られます。それらには以下が含まれます:
オペレーター 説明 &(ビットごとの AND)。2 つの数値 (オペランド) を取り、2 つの数値の各ビットに対して AND を実行します。両方が 1 の場合、AND は 1 を返し、それ以外の場合は 0 を返します。| (ビットごとの OR) 2 つの数値 (オペランド) を取り、2 つの数値のすべてのビットに対して OR を実行します。ビットの 1 つが 1 の場合は 1 を返します。^ (ビット単位の XOR) 2 つの数値 (オペランド) を取り、2 つの数値のすべてのビットに対して XOR を実行します。両方のビットが異なる場合は 1 を返します。<<(左シフト) 2 つの数値を取り、最初のオペランドのビットを左にシフトします。 2 番目のオペランドは、シフトする合計桁数を決定します。>> (右シフト) 2 つの数値を取り、最初のオペランドのビットを右にシフトします。 2 番目のオペランドは、シフトする桁数を決定します。~ (ビットごとの NOT)。数値を取り、そのすべてのビットを反転します。#include <iostream>
using namespace std;
int main() {
unsigned int p = 60; // 60 = 0011 1100
unsigned int q = 13; // 13 = 0000 1101
int z = 0;
z = p & q;
cout << "p&q is : " << z << endl; // 12 = 0000 1100
z = p | q;
cout << "p|q is : " << z << endl; // 61 = 0011 1101
z = p ^ q;
cout << "p^q is : " << z << endl; // 49 = 0011 0001
z = ~p;
cout << "~p is : " << z << endl; // -61 = 1100 0011
z = p << 2;
cout << "p<<2 is: " << z << endl; // 240 = 1111 0000
z = p >> 2;
cout << "p>>2 is : " << z << endl; // 15 = 0000 1111
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール> コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
符号なし整数変数 p を宣言し、値 60 を割り当てます。これは、2 進数で 0011 1100 です。
符号なし整数変数 q を宣言し、13 の値を割り当てます。これは、2 進数で 0000 1101 です。
整数変数 z を宣言し、0 に初期化します。
変数 p と q に対してビットごとの &(AND) 演算を実行し、結果を変数 z に格納します。
上記の操作の結果を他のテキストと一緒にコンソールに出力します。
ビットごとの | を実行する変数 p と q に対する (OR) 演算を行い、結果を変数 z に格納します。
上記の操作の結果を他のテキストと一緒にコンソールに出力します。
変数 p と q に対してビット単位の ^ (XOR) 演算を実行し、結果を変数 z に格納します。
上記の操作の結果を他のテキストと一緒にコンソールに出力します。
変数 p と q に対してビットごとの ~ (NOT) 演算を実行し、結果を変数 z に格納します。
上記の操作の結果を他のテキストと一緒にコンソールに出力します。
変数 p で左シフト演算を実行し、結果を変数 z に格納します。
上記の操作の結果を他のテキストと一緒にコンソールに出力します。
変数 p で右シフト演算を実行し、結果を変数 z に格納します。
上記の操作の結果を他のテキストと一緒にコンソールに出力します。
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
代入演算子
代入演算子 変数に値を割り当てます。オペランド/変数は演算子の左側に追加され、値は演算子の右側に追加されます。変数と値は同じデータ型に属している必要があります。そうでない場合、C++ コンパイラでエラーが発生します。例:
x = 5;
上記の例では、x は変数/オペランド、=は代入演算子、5 は値です。 C++ で一般的な代入演算子は次のとおりです。
オペレーター 説明 =(単純な代入演算子)右側の値を左側の変数に代入します。+=(AND 代入演算子の追加)最初に左側のオペランドの値を右側のオペランドの値に加算し、結果を左側の変数に代入します。-=(減算 AND 代入演算子)最初に左側のオペランドの値から右側のオペランドの値を減算し、結果を左側の変数に割り当てます。 /=(除算 AND 代入演算子)最初に左オペランドの値を右オペランドの値で除算し、結果を左の変数に代入します。
例:
#include <iostream>
using namespace std;
int main()
{
int x = 5;
cout << "Initial value of x is " << x << "\n";
x += 5;
cout << "x += 5 gives :" << x << "\n";
x -= 5;
cout << "x -= 5 gives : " << x << "\n";
x *= 5;
cout << "x *= 5 gives :" << x << "\n";
x /= 5;
cout << "x /= 5 gives : " << x << "\n";
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール> コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出す
{ は、main() 関数の本体の開始を示します。
整数変数 x を宣言し、値 5 を割り当てます。
変数 x の値を他のテキストと一緒にコンソールに出力する。 \n は改行文字です。印刷時にカーソルを次の行に移動します。
変数 x の値に 5 を加算し、結果を変数 x に代入します。
変数 x の値を他のテキストと一緒にコンソールに出力する
x の値から 5 を引き、その結果を変数 x に代入します。
変数 x の値を他のテキストと一緒にコンソールに出力する
変数 x の値を 5 で乗算し、その結果を変数 x に代入します。
変数 x の値を他のテキストと一緒にコンソールに出力する
変数 x の値を 5 で割り、結果を変数 x に代入します。
変数 x の値を他のテキストと一緒にコンソールに出力する
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
その他のオペレーター
その他のオペレーター sizeof 演算子、コンマ演算子、条件付き演算子、および演算子の優先順位が含まれます。 C++ でサポートされている他の演算子について説明します。
演算子のサイズ
この演算子は、変数のサイズを決定します。 sizeof 演算子を使用して、データ型のサイズを決定します。
例:
#include <iostream>
using namespace std;
int main() {
cout<<"Size of int : "<< sizeof(int) << "\n";
cout<<"Size of char : " << sizeof(char) << "\n";
cout<<"Size of float : " << sizeof(float) << "\n";
cout<<"Size of double : " << sizeof(double) << "\n";
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール> コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
sizeof 演算子を使用して整数データ型のサイズを決定し、コンソールに他のテキストと一緒に表示する
sizeof 演算子を使用して文字データ型のサイズを決定し、コンソールに他のテキストと一緒に表示する
sizeof 演算子を使用して float データ型のサイズを決定し、コンソールに他のテキストと一緒に表示する
sizeof 演算子を使用して float データ型のサイズを決定し、コンソールに他のテキストと一緒に表示する
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
コンマ演算子
コンマ演算子 (,) 一連の操作の実行をトリガーします。これは第 1 オペランドを表し、結果を破棄します。次に、2 番目のオペランドを評価し、値と型を返します。
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>
コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
2 つの整数変数 x と y を宣言します。
変数 y に値 100 を割り当てます。
y の値をインクリメントし、結果を変数 x に割り当てます。 100 の y から始まり、101 (y++) までインクリメントします。次に、y が 10 に加算されます。最後に、y はまだ 101 ですが、99 に加算されて 200 になります。x は現在 200 です。
変数 x の値をコンソールに出力する
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
条件演算子
この演算子は条件を評価し、評価の結果に基づいて動作します。
構文:
Condition ? Expression2 : Expression3;
パラメータ:
条件は、評価される条件です。
式 1 は、条件が真の場合に実行される式です。
式 3 は、条件が false の場合に実行される式です。
例:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "value of b: " << b << endl;
return 0;
}
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>
コードに iostream ヘッダー ファイルをインクルードします。これにより、コンソールから読み書きできるようになります。
std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにする
プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
2 つの整数変数 a と b を宣言します。変数 a には値 1 が割り当てられています。
変数への値の代入 b.変数 a が 10 未満の場合、b には値 2 が割り当てられます。それ以外の場合、b には値 5 が割り当てられます。
変数 b の値を他のテキストと一緒にコンソールに出力する
プログラムが正常に実行された場合、main() 関数は値を返す必要があります。
main() 関数の本体の終わり。
演算子の優先順位
1 つの操作に複数の演算子が含まれる場合があります。その場合、演算子の優先順位によって、最初に評価されるものが決まります。
次のリストは、C++ での演算子の優先順位を示しています。左から右に向かって優先順位が低くなります:
(), [],*, /, %, +/-, <<,>>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=
まとめ: 演算子は、論理演算および算術演算を実行するための記号です。
算術演算子は、オペランドに対してさまざまな算術演算を実行するのに役立ちます。
関係演算子は、オペランドに対してさまざまな比較演算を実行するのに役立ちます。
論理演算子は、オペランドに対してさまざまな論理演算を実行するのに役立ちます。
ビット演算は、オペランドに対してビット演算を実行するのに役立ちます。
代入演算子は、オペランドに対してさまざまな算術演算を実行するのに役立ちます。
sizeof 演算子は、変数またはデータ型のサイズを返します。
コンマ演算子は、一連の操作を実行します。
条件演算子は条件を評価し、結果に基づいて動作します。