Opera中に入る C++ 例: とは何か、種類とプログラム
何ですか Operaトール?
オペレーター は、オペランドに対して演算を実行するために使用される記号です。演算子はオペランドを演算します。演算は数学的または論理的になります。 C++ さまざまな操作を実行します。
次の操作を考えてみましょう。
a = x + y;
上記の文では、xとyがオペランドで、+は加算演算子です。 C++ コンパイラは上記のステートメントに遭遇すると、x と y を加算し、その結果を変数 a に格納します。
の種類 Opera中に入る C++
主にあります 6種類の演算子 C++
- 算術 Operaトー
- リレーショナル Operaトー
- 論理的 Operaトー
- ビット単位 Operaトー
- 譲渡 Operaトー
- その他 Operaトー
算術 Operaトー
これらは、数学/算術演算を実行するために使用される演算子の種類です。次のものが含まれます。
Operaタ | 説明 |
---|---|
+ 加算演算子 | オペランドに追加します。 |
– 減算演算子 | 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 の値を他のテキストと一緒にコンソールに出力します。
- コンソール上の他のテキストと一緒に操作 ab の値を出力します。
- コンソール上の他のテキストと一緒に、演算 a*b の値を出力します。
- 操作 a/b の値を他のテキストと一緒にコンソールに出力します。
- 操作 a%b の値を他のテキストと一緒にコンソールに出力します。
- コンソール上の他のテキストと一緒に操作 a++ の値を出力します。
- コンソール上の他のテキストと一緒に操作 a– の値を出力します。
- プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
- main() 関数の本体の終わり。
リレーショナル Operaトー
これらのタイプの演算子は、オペランドの比較を実行します。たとえば、どのオペランドが他のオペランドより大きいか、または小さいかを知る必要がある場合があります。次の演算子が含まれます。
Operaタ | 説明 |
---|---|
== 等しい演算子。 | 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が真の場合にコンソールに表示するテキスト。endlは C++ 行の終了を表すキーワード。カーソルを移動して次の行に印刷を開始します。} は、if ステートメントの本体の終了を示します。
- 上記の if ステートメントの else 部分。これは、演算 a==b が false の場合に何を行うかを規定します。
- 操作a==bが偽の場合にコンソールに表示するテキスト。endlは C++ 行の終了を表すキーワード。カーソルを移動して次の行に印刷を開始します。} は else ステートメントの本体の終了を示します。
- 算術演算を実行すると、
- 操作が失敗した場合にコンソールに表示するテキスト C++ 行の終了を表すキーワード。カーソルを移動して次の行に印刷を開始します。} は、if ステートメントの本体の終了を示します。
- 上記のif文のelse部分。これは、操作aが失敗した場合に何をするかを記述します。
- 操作が失敗した場合にコンソールに表示するテキスト C++ 行の終了を表すキーワード。カーソルを移動して次の行に印刷を開始します。} は else ステートメントの本体の終了を示します。
- 真か偽かを判断するために、if 決定文で算術演算 a>b を実行します。{ は、if 文の本体の開始を示します。
- 操作a>bが真の場合にコンソールに表示するテキスト。endlは C++ 行の終了を表すキーワード。カーソルを移動して次の行に印刷を開始します。} は、if ステートメントの本体の終了を示します。
- 上記の if ステートメントの else 部分。これは、演算 a>b が false の場合に何を行うかを規定します。
- 操作a>bが偽の場合にコンソールに表示するテキスト。endlは C++ 行の終了を表すキーワード。カーソルを移動して次の行に印刷を開始します。} は else ステートメントの本体の終了を示します。
- プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
- main() 関数の本体の終わり。
論理的 Operaトー
この 論理演算子 2 つ以上の制約/条件を組み合わせます。論理演算子は、検討中の元の条件の評価を補完します。次の演算子が含まれます。
Operaタ | 説明 |
---|---|
&& 論理 AND 演算子。 | 両方のオペランドがゼロでない場合、条件は真になります。 |
|| 論理 OR 演算子。 | オペランドの 1 つがゼロ以外の場合、条件は真になります。 |
! 論理 NOT 演算子。 | オペランドの論理状態を反転します。オペランドが 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 つの条件を結合します。最初の条件は false、2 番目の条件は true です。False&&true は False なので、if の結果は false になります。
- 上記の if ステートメントが true の場合にコンソールに出力されるテキスト。 これは実行されません。
- 上記のif文が偽の場合に実行される部分。
- if ステートメントが false の場合にコンソールに出力するテキスト。 これが実行されます。
- if ステートメント内で || (OR) 演算子を使用します。これは、a の値が b の値と等しい、かつ、a の値が b の値より大きいという 2 つの条件を結合します。最初の条件は false、2 番目の条件は true です。False||true は True なので、if の結果は true になります。
- 上記の if ステートメントが true の場合にコンソールに出力されるテキスト。 これが実行されます。
- 上記のif文が偽の場合に実行される部分。
- if ステートメントが false の場合にコンソールに出力するテキスト。 これは実行されません。
- 変数の値が0かどうかを確認します。
- 上記の if ステートメントが true の場合にコンソールに出力されるテキスト。 これは実行されません。
- 上記のif文が偽の場合に実行される部分。
- if ステートメントが false の場合にコンソールに出力するテキスト。 これが実行されます。
- プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
- main() 関数の本体の終わり。
ビット単位 Operaトー
ビット演算子 オペランドに対してビットレベルの演算を実行します。まず、演算子がビットレベルに変換され、次にオペランドに対して演算が実行されます。加算や減算などの算術演算をビットレベルで実行すると、結果がより速く得られます。これには次のものが含まれます。
Operaタ | 説明 |
---|---|
& (ビット単位の AND)。 | 2 つの数値 (オペランド) を受け取り、1 つの数値の各ビットに対して AND を実行します。両方が 1 の場合、AND は 0 を返し、それ以外の場合は XNUMX を返します。 |
| (ビットOR) | 2 つの数値 (オペランド) を受け取り、1 つの数値のすべてのビットに対して OR を実行します。ビットの 1 つが XNUMX の場合は XNUMX を返します。 |
^ (ビット単位の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 (バイナリでは 0011 1100) を割り当てます。
- 符号なし整数変数 q を宣言し、それに値 13 (バイナリでは 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() 関数の本体の終わり。
譲渡 Operaトー
代入演算子 変数に値を割り当てます。オペランド/変数は演算子の左側に追加され、値は演算子の右側に追加されます。変数と値は同じデータ型に属している必要があります。そうでない場合は、 C++ コンパイラはエラーを発生させます。
例:
x = 5;
上記の例では、xは変数/オペランド、=は代入演算子、5は値です。以下は、一般的な代入演算子です。 C++:
Operaタ | 説明 |
---|---|
= (単純な代入演算子) | 右側の値を左側の変数に割り当てます。 |
+= (AND 代入演算子を追加) | 右オペランドの値を左オペランドに追加し、その結果を左側の変数に割り当てます。 |
-= (減算 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() 関数の本体の終わり。
その他 Operaトー
その他 Operaトー sizeof演算子、カンマを含む Operaトール、条件付き Operaトール、そして Operaトールの優先順位。
サポートされている他の演算子について説明します。 C++:
sizeof演算子
この演算子は変数のサイズを決定します。データ型のサイズを決定するには、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() 関数の本体の終わり。
コンマ Operaタ
この カンマ演算子 (,) は、一連の演算の実行をトリガーします。最初のオペランドを表現し、結果を破棄します。次に、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() 関数の本体の開始を示します。
- XNUMX つの整数変数 x と y を宣言します。
- 変数 ya の値 100 を割り当てます。
- y の値をインクリメントし、結果を変数 x に代入します。 y の 100 から始まり、101 (y++) まで増加します。 次に、y が 10 に加算されます。最後に、まだ 101 である y が 99 に加算され、200 になります。x は 200 になります。
- 変数 x の値をコンソールに表示します。
- プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
- main() 関数の本体の終わり。
条件付きの Operaタ
この演算子は条件を評価し、評価の結果に基づいて動作します。
構文:
Condition ? Expression2 : Expression3;
パラメーター:
- Condition は評価される条件です。
- Expression1 は、条件が true の場合に実行される式です。
- Expression3 は、条件が 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() 関数の本体の開始を示します。
- XNUMXつを宣言する 整数変数 aとb。 変数 a には値 1 が割り当てられています。
- 変数 b に値を割り当てます。変数 a が 10 未満の場合、b には値 2 が割り当てられ、それ以外の場合は、b には値 5 が割り当てられます。
- 変数 b の値を他のテキストと一緒にコンソールに表示します。
- プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
- main() 関数の本体の終わり。
Operaトルの優先順位
1 つの演算に複数の演算子が含まれる場合があります。その場合、演算子の優先順位によって最初に評価される演算子が決まります。
以下のリストは、演算子の優先順位を示しています。 C++左から右へ向かって優先順位が低くなります。
()、[]、*、/、%、+/-、<<、>>、==、!=、^、|、&&、||、?:、=、+=、-=、*= 、/=
まとめ
- Opera演算子は、論理演算や算術演算を実行するための記号です。
- 算術演算子は、オペランドに対してさまざまな算術演算を実行するのに役立ちます。
- 関係演算子は、オペランドに対してさまざまな比較演算を実行するのに役立ちます。
- 論理演算子は、オペランドに対してさまざまな論理演算を実行するのに役立ちます。
- ビット演算子 オペランドに対してビット演算を実行するのに役立ちます。
- 代入演算子は、オペランドに対してさまざまな算術演算を実行するのに役立ちます。
- sizeof 演算子は、変数またはデータ型のサイズを返します。
- コンマ演算子は一連の演算を実行します。
- 条件演算子は条件を評価し、その結果に基づいて動作します。