C# 演算子
C# 演算子
この記事では、C# プログラミング言語のさまざまな種類の演算子とその使用方法についてすべて学びます。
演算子は、オペランドで演算を実行するために使用される記号です。オペランドは、変数および/または定数の場合があります。
例 、 2+3
で 、 +
2
に対して、加算演算を実行するために使用される演算子です。 と 3
オペランドです。
演算子は、プログラムで変数と値を操作するために使用されます。 C# は、実行する操作の種類に基づいて分類される多数の演算子をサポートしています。
1.基本代入演算子
基本的な代入演算子 (=) は、変数に値を代入するために使用されます。たとえば、
double x; x = 50.05;
ここでは、50.05 が x に割り当てられます。
例 1:基本代入演算子
using System;
namespace Operator
{
class AssignmentOperator
{
public static void Main(string[] args)
{
int firstNumber, secondNumber;
// Assigning a constant to variable
firstNumber = 10;
Console.WriteLine("First Number = {0}", firstNumber);
// Assigning a variable to another variable
secondNumber = firstNumber;
Console.WriteLine("Second Number = {0}", secondNumber);
}
}
}
プログラムを実行すると、出力は次のようになります:
First Number = 10 Second Number = 10
これは、代入演算子の使用法を示す簡単な例です。
中括弧 { }
の使用に気づいたかもしれません 例では。 文字列の書式設定でそれらについて説明します .今のところ、{0}
ということだけ覚えておいてください。 文字列に続く最初の変数 {1}
に置き換えられます 2 番目の変数などに置き換えられます。
2.算術演算子
算術演算子は、加算、減算、乗算、除算などの算術演算を実行するために使用されます。
たとえば、
int x = 5; int y = 10; int z = x + y;// z = 15
演算子 | オペレーター名 | 例 |
---|---|---|
+ | 加算演算子 | 6 + 3 は 9 に評価されます |
- | 減算演算子 | 10 - 6 は 4 に評価されます |
* | 乗算演算子 | 4 * 2 は 8 に評価されます |
/ | 師団オペレーター | 10 / 5 は 2 に評価されます |
% | モジュロ演算子 (剰余) | 16 % 3 が 1 に評価される |
例 2:算術演算子
using System;
namespace Operator
{
class ArithmeticOperator
{
public static void Main(string[] args)
{
double firstNumber = 14.40, secondNumber = 4.60, result;
int num1 = 26, num2 = 4, rem;
// Addition operator
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
// Subtraction operator
result = firstNumber - secondNumber;
Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result);
// Multiplication operator
result = firstNumber * secondNumber;
Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result);
// Division operator
result = firstNumber / secondNumber;
Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);
// Modulo operator
rem = num1 % num2;
Console.WriteLine("{0} % {1} = {2}", num1, num2, rem);
}
}
}
プログラムを実行すると、出力は次のようになります:
14.4 + 4.6 = 19 14.4 - 4.6 = 9.8 14.4 * 4.6 = 66.24 14.4 / 4.6 = 3.1304347826087 26 % 4 = 2
上記の例では、算術演算が実行されます。変数は、ステートメント内の定数に置き換えることができます。たとえば、
result = 4.5 + 2.7 ; // result will hold 7.2 result = firstNumber - 3.2; // result will hold 11.2
3.関係演算子
関係演算子は、2 つのオペランド間の関係をチェックするために使用されます。関係が真の場合、結果は true
になります 、それ以外の場合は false
になります .
関係演算子は、意思決定とループで使用されます。
演算子 | オペレーター名 | 例 |
---|---|---|
== | 等しい | 6 ==4 は false と評価されます |
> | より大きい | 3> -1 は true と評価されます |
< | 未満 | 5 <3 は false と評価されます |
>= | 以上 | 4>=4 は true と評価されます |
<= | 以下 | 5 <=3 は false と評価されます |
!= | 等しくない | 10 !=2 は true と評価されます |
例 3:関係演算子
using System;
namespace Operator
{
class RelationalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
result = (firstNumber==secondNumber);
Console.WriteLine("{0} == {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber > secondNumber);
Console.WriteLine("{0} > {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber < secondNumber);
Console.WriteLine("{0} < {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber >= secondNumber);
Console.WriteLine("{0} >= {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber <= secondNumber);
Console.WriteLine("{0} <= {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber != secondNumber);
Console.WriteLine("{0} != {1} returns {2}",firstNumber, secondNumber, result);
}
}
}
プログラムを実行すると、出力は次のようになります:
10 == 20 returns False 10 > 20 returns False 10 < 20 returns True 10 >= 20 returns False 10 <= 20 returns True 10 != 20 returns True
4.論理演算子
論理演算子は、 and
などの論理演算を実行するために使用されます 、 or
.論理演算子はブール式で動作します (true
と false
)、ブール値を返します。論理演算子は、意思決定とループで使用されます。
論理 AND
の結果がどのように評価されるかを次に示します。 そして OR
オペランド 1 | オペランド 2 | OR (||) | AND (&&) |
---|---|---|---|
真 | 真 | 真 | 真 |
真 | 偽 | 真 | 偽 |
偽 | 真 | 真 | 偽 |
偽 | 偽 | 偽 | 偽 |
簡単に言えば、表は次のように要約できます:
- オペランドの 1 つが true の場合、
OR
オペレーターはそれをtrue
と評価します . - オペランドの 1 つが false の場合、
AND
オペレーターはそれをfalse
と評価します .
例 4:論理演算子
using System;
namespace Operator
{
class LogicalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
// OR operator
result = (firstNumber == secondNumber) || (firstNumber > 5);
Console.WriteLine(result);
// AND operator
result = (firstNumber == secondNumber) && (firstNumber > 5);
Console.WriteLine(result);
}
}
}
プログラムを実行すると、出力は次のようになります:
True False
5.単項演算子
他の演算子とは異なり、単項演算子は単一のオペランドで動作します。
演算子 | オペレーター名 | 説明 |
---|---|---|
+ | 単項プラス | オペランドの符号はそのまま |
- | 単項マイナス | オペランドの符号を反転 |
++ | インクリメント | 値を 1 増やす |
-- | デクリメント | 値を 1 減らす |
! | 論理否定 (Not) | ブール値を反転します |
例 5:単項演算子
using System;
namespace Operator
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10, result;
bool flag = true;
result = +number;
Console.WriteLine("+number = " + result);
result = -number;
Console.WriteLine("-number = " + result);
result = ++number;
Console.WriteLine("++number = " + result);
result = --number;
Console.WriteLine("--number = " + result);
Console.WriteLine("!flag = " + (!flag));
}
}
}
プログラムを実行すると、出力は次のようになります:
+number = 10 -number = -10 ++number = 11 --number = 10 !flag = False
インクリメント (++)
(--)
を減らします 演算子は、接頭辞および接尾辞として使用できます。接頭辞として使用すると、変数の値の変更が同じ行に表示され、接尾辞として使用すると、変数の値の変更が次の行に表示されます。これは、以下の例で明らかです。
例 6:C# のポストおよびプリインクリメント演算子
using System;
namespace Operator
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10;
Console.WriteLine((number++));
Console.WriteLine((number));
Console.WriteLine((++number));
Console.WriteLine((number));
}
}
}
プログラムを実行すると、出力は次のようになります:
10 11 12 12
++
を使用した効果を見ることができます 接頭辞と接尾辞として。 ++
のとき オペランドの後に使用される場合、値は最初に評価され、次に 1
だけインクリメントされます .したがって、ステートメント
Console.WriteLine((number++));
10
を出力します 11
の代わりに .値が出力された後、number の値は 1
だけインクリメントされます .
++
の場合はプロセスが逆になります 接頭辞として使用されます。値は印刷前にインクリメントされます。したがって、ステートメント
Console.WriteLine((++number));
12
を出力します .
デクリメント演算子 (--)
の場合も同様です .
6.三項演算子
三項演算子 ? :
3 つのオペランドで動作します。 if-then-else
の短縮形です 声明。三項演算子は次のように使用できます:
variable = Condition? Expression1 : Expression2;
三項演算子は次のように機能します:
- Condition で記述された式が
true
の場合 、Expression1 の結果 変数に割り当てられます。 false
の場合 、Expression2 の結果 変数に割り当てられます。
例 7:三項演算子
using System;
namespace Operator
{
class TernaryOperator
{
public static void Main(string[] args)
{
int number = 10;
string result;
result = (number % 2 == 0)? "Even Number" : "Odd Number";
Console.WriteLine("{0} is {1}", number, result);
}
}
}
プログラムを実行すると、出力は次のようになります:
10 is Even Number
詳細については、C# 三項演算子をご覧ください。 .
7.ビット単位およびビット シフト演算子
ビット処理演算子とビット シフト演算子は、ビット操作操作を実行するために使用されます。
演算子 | オペレーター名 |
---|---|
~ | ビット単位の補数 |
& | ビットごとの AND |
| | ビットごとの OR |
^ | ビットごとの排他的 OR |
<< | ビット単位の左シフト |
>> | ビットごとの右シフト |
例 8:ビット単位およびビット シフト演算子
using System;
namespace Operator
{
class BitOperator
{
public static void Main(string[] args)
{
int firstNumber = 10;
int secondNumber = 20;
int result;
result = ~firstNumber;
Console.WriteLine("~{0} = {1}", firstNumber, result);
result = firstNumber & secondNumber;
Console.WriteLine("{0} & {1} = {2}", firstNumber,secondNumber, result);
result = firstNumber | secondNumber;
Console.WriteLine("{0} | {1} = {2}", firstNumber,secondNumber, result);
result = firstNumber ^ secondNumber;
Console.WriteLine("{0} ^ {1} = {2}", firstNumber,secondNumber, result);
result = firstNumber << 2;
Console.WriteLine("{0} << 2 = {1}", firstNumber, result);
result = firstNumber >> 2;
Console.WriteLine("{0} >> 2 = {1}", firstNumber, result);
}
}
}
プログラムを実行すると、出力は次のようになります:
~10 = -11 10 & 20 = 0 10 | 20 = 30 10 ^ 20 = 30 10 << 2 = 40 10 >> 2 = 2
詳細については、C# のビット単位およびビット シフト演算子をご覧ください。 .
8.複合代入演算子
演算子 | オペレーター名 | 例 | 同等 |
---|---|---|---|
+= | 追加任務 | x += 5 | x = x + 5 |
-= | 引き算の割り当て | x -= 5 | x = x - 5 |
*= | 掛け算の割り当て | x *= 5 | x = x * 5 |
/= | 師団の割り当て | x /= 5 | x = x / 5 |
%= | モジュロ代入 | x %= 5 | x = x % 5 |
&= | ビットごとの AND 代入 | x &= 5 | x = x & 5 |
|= | ビットごとの OR 代入 | x |= 5 | x = x | 5 |
^= | ビットごとの XOR 代入 | x ^= 5 | x = x ^ 5 |
<<= | 左シフトの割り当て | x <<= 5 | x = x << 5 |
>>= | 右シフト代入 | x >>= 5 | x = x >> 5 |
=> | ラムダ演算子 | x => x*x | Returns x*x |
例 9:複合代入演算子
using System;
namespace Operator
{
class BitOperator
{
public static void Main(string[] args)
{
int number = 10;
number += 5;
Console.WriteLine(number);
number -= 3;
Console.WriteLine(number);
number *= 2;
Console.WriteLine(number);
number /= 3;
Console.WriteLine(number);
number %= 3;
Console.WriteLine(number);
number &= 10;
Console.WriteLine(number);
number |= 14;
Console.WriteLine(number);
number ^= 12;
Console.WriteLine(number);
number <<= 2;
Console.WriteLine(number);
number >>= 3;
Console.WriteLine(number);
}
}
}
プログラムを実行すると、出力は次のようになります:
15 12 24 8 2 2 14 2 8 1
ラムダ演算子について説明します 後のチュートリアルで。
C言語