산술 연산자

산술 연산자는 사칙연산을 다루는 연산자로 가장 기본적이면서 가장 많이 사용되는 연산자이다.

산술 연산자의 우선순위는 수학에서의 사칙연산 우선순위와 같다.

연산자 설명 지원 형식
+ 왼쪽 피연산자에서 오른쪽 피연산자를 더한다. 모든 수치 데이터 형식
- 왼쪽 피연산자에서 오른쪽 피연산자를 뺀다. 모든 수치 데이터 형식
* 왼쪽 피연산자에서 오른쪽 피연산자를 곱한다. 모든 수치 데이터 형식
/ 왼쪽 피연산자를 오른쪽 피연산자로 나눈 몫을 구한다. 모든 수치 데이터 형식
% 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후의 나머지를 구한다. 모든 수치 데이터 형식
using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            int a = 111 + 222;
            Console.WriteLine($"a : {a}");

            int b = a - 100;
            Console.WriteLine($"b : {b}");

            int c = b * 10;
            Console.WriteLine($"c : {c}");

            double d = c / 6.3;
            Console.WriteLine($"d : {d}");

            Console.WriteLine($"22 / 7 = {22 / 7}({22 % 7})");
        }
    }
}
a : 333
b : 233
c : 2330
d : 369.8412698412699
22 / 7 = 3(1)

증감 연산자

증감 연산자는 피연산자를 1 씩 증가 또는 감소시킬 때 사용하는 연산자로 피연산자가 하나뿐인 단항 연산자 이다. 증감 연산자는 피연산자의 어느 쪽에 위치하는가에 따라 연산 순서 및 결과가 달라진다.

연산자 설명 지원 형식
n++ 해당 문장을 진행한 후 피연산자의 값을 1 증가시킨다. 모든 수치 데이터 형식과 열거 형식
++n 피연산자의 값을 1 증가시킨 후에 해당 문장을 진행한다. 모든 수치 데이터 형식과 열거 형식
n-- 해당 문장을 진행한 후 피연산자의 값을 1 감소시킨다. 모든 수치 데이터 형식과 열거 형식
--n 피연산자의 값을 1 감소시킨 후에 해당 문장을 진행한다. 모든 수치 데이터 형식과 열거 형식
using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            int a = 10;
            Console.WriteLine(a++);
            Console.WriteLine(++a);

            Console.WriteLine(a--);
            Console.WriteLine(--a);
        }
    }
}
10
12
12
10

문자열 결합 연산자

문자열과 함께 사용하는 + 연산자는 '문자열 결합 연산자' 이다.

using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            {
                string result = "123" + "456";
                Console.WriteLine(result);
            }

            {
                string result = "Hello" + " " + "World!";
                Console.WriteLine(result);
            }
        }
    }
}
123456
Hello World!

할당 연산자

할당 연산자는 변수 또는 상수에 피연산자 데이터를 할당하는 기능을 한다.

연산자 이름 설명
= 할당 연산자 오른쪽 피연산자를 왼쪽 피연산자에 할당함
+= 덧셈 할당 연산자 a += b;a = a + b; 와 같음.
-= 뺄셈 할당 연산자 a -= b;a = a - b; 와 같음.
*= 곱셈 할당 연산자 a *= b;a = a * b; 와 같음.
/= 나눗셈 할당 연산자 a /= b;a = a / b; 와 같음.
%= 나머지 할당 연산자 a %= b;a = a % b; 와 같음.
&= 논리곱 할당 연산자 a &= b;a = a & b; 와 같음.
!= 논리합 할당 연산자 `a
^= 배타적 논리합 할당 연산자 a ^= b;a = a ^ b; 와 같음.
<<= 왼쪽 시프트 할당 연산자 a <<= b;a = a << b; 와 같음.
>>= 오른쪽 시프트 할당 연산자 a >>= b;a = a >> b; 와 같음.
using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            int a;
            a = 100;
            Console.WriteLine($"a = 100 : {a}");
            a += 90;
            Console.WriteLine($"a += 90 : {a}");
            a -= 80;
            Console.WriteLine($"a -= 80 : {a}");
            a *= 70;
            Console.WriteLine($"a *= 70 : {a}");
            a /= 60;
            Console.WriteLine($"a /= 60 : {a}");
            a %= 50;
            Console.WriteLine($"a %= 50 : {a}");
            a &= 40;
            Console.WriteLine($"a &= 40 : {a}");
            a |= 30;
            Console.WriteLine($"a |= 30 : {a}");
            a ^= 20;
            Console.WriteLine($"a ^= 20 : {a}");
            a <<= 10;
            Console.WriteLine($"a <<= 10 : {a}");
            a >>= 1;
            Console.WriteLine($"a >>= 1 : {a}");
        }
    }
}
a = 100 : 100
a += 90 : 190
a -= 80 : 110
a *= 70 : 7700
a /= 60 : 128
a %= 50 : 28
a &= 40 : 8
a |= 30 : 30
a ^= 20 : 10
a <<= 10 : 10240
a >>= 1 : 5120

관계 연산자

관계 연산자는 두 피연산자 사이의 상대적인 크기를 평가하는 연산자이다.

연산자 설명 지원 형식
< 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 true 를 반환 모든 수치 형식과 열거 형식
> 왼쪽 피연산자가 오른쪽 피연산자보다 크면 true 를 반환 모든 수치 형식과 열거 형식
<= 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 true 를 반환 모든 수치 형식과 열거 형식
>= 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 true 를 반환 모든 수치 형식과 열거 형식
== 왼쪽 피연산자와 오른쪽 피연산자가 같으면 true 를 반환 모든 데이터 형식
!= 왼쪽 피연산자와 오른쪽 피연산자가 같지 않으면 true 를 반환 모든 데이터 형식
using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            Console.WriteLine($"3 > 4 : {3 > 4}"); 
            Console.WriteLine($"3 >= 4 : {3 >= 4}"); 
            Console.WriteLine($"3 < 4 : {3 < 4}"); 
            Console.WriteLine($"3 <= 4 : {3 <= 4}"); 
            Console.WriteLine($"3 == 4 : {3 == 4}"); 
            Console.WriteLine($"3 != 4 : {3 != 4}"); 
        }
    }
}
3 > 4 : False
3 >= 4 : False
3 < 4 : True
3 <= 4 : True
3 == 4 : False
3 != 4 : True

논리 연산자

논리 연산자는 주어진 논리식을 판단하여 true, false 를 결정하는 연산자이다.

&& 연산과 || 연산은 두개의 피연산자를 갖고, ! 연산은 한 개의 피연산자를 갖는다.

연산자 설명
&& 논리식이 모두 truetrue를 반환한다. (논리 AND 연산)
`
! 논리식의 결과가 truefalse를, falsetrue를 반환한다. (논리 NOT 연산)

논리 연산자 동작 결과 (진리표)

| A | B | A && B | A || B | !A | | --- | --- | --- | --- | --- | | true | true | true | true | false | | false | true | false | true | true | | true | false | false | true | false | | false | false | false | false | true |

using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Testing && ... ");
            Console.WriteLine($"1 > 0 && 4 < 5 : {1 > 0 && 4 < 5}");
            Console.WriteLine($"1 > 0 && 4 > 5 : {1 > 0 && 4 > 5}");
            Console.WriteLine($"1 == 0 && 4 > 5 : {1 == 0 && 4 > 5}");
            Console.WriteLine($"1 == 0 && 4 < 5 : {1 == 0 && 4 < 5}");

            Console.WriteLine("\\nTesting || ... ");
            Console.WriteLine($"1 > 0 || 4 < 5 : {1 > 0 || 4 < 5}");
            Console.WriteLine($"1 > 0 || 4 > 5 : {1 > 0 || 4 > 5}");
            Console.WriteLine($"1 == 0 || 4 > 5 : {1 == 0 || 4 > 5}");
            Console.WriteLine($"1 == 0 || 4 < 5 : {1 == 0 || 4 < 5}");
            
            Console.WriteLine("\\nTesting ! ... ");
            Console.WriteLine($"!True : {!true}");
            Console.WriteLine($"!False : {!false}");
        }
    }
}
Testing && ...
1 > 0 && 4 < 5 : True
1 > 0 && 4 > 5 : False
1 == 0 && 4 > 5 : False
1 == 0 && 4 < 5 : False

Testing || ...
1 > 0 || 4 < 5 : True
1 > 0 || 4 > 5 : True
1 == 0 || 4 > 5 : False
1 == 0 || 4 < 5 : True

Testing ! ...
!True : False
!False : True

조건 연산자

조건 연산자 ?: 는 피연산자를 세 개나 가지는 연산자로 다음과 같이 사용한다.

조건식 ? 반환값1 : 반환값2

? 앞의 조건식이 true 면 반환값1 을, false 면 반환값2 를 반환한다.

Untitled

using System;

namespace Operator
{
    class MainApp
    {
        static void Main(string[] args)
        {
            string result = (10 % 2) == 0 ? "짝수" : "홀수";
            Console.WriteLine(result);
        }
    }
}
짝수

비트 연산자

비트 연산자는 비트 bit 단위로 논리 연산을 할 때 사용하는 연산자이다.

| --- | --- | --- | --- |

,  연산

&, | 연산

,  연산

^, ~ 연산

왼쪽 시프트 연산 << 의 경우, 양수 음수와 관계없이 새롭게 채워지는 비트들은 0 으로 채워지고, 이동으로인해 밀려나는 왼쪽 비트들은 버려진다.

 연산

<< 연산

오른쪽 시프트 연산 >> 의 경우, 양수를 이동시킬 때 새롭게 채워지는 비트들은 0 으로 채워지고, 음수를 이동시킬 때 새롭게 채워지는 비트들은 1 로 채워진다. 이동으로 인해 밀려나는 오른쪽 비트들은 버려진다.

 연산

>> 연산