C# 기초

[C# 교과서] 3. C# 기초(2) - 연산자

HYOKYE0NG 2022. 1. 11. 14:10
반응형
연산자 개요 및 단항·산술 연산자 사용하기

 

연산자

데이터로 연산 작업을 수행할 때 연산자 사용

 

  • 단항 연산자: 항 1개로 연산
  • 이항 연산자: 항 2개로 연산
  • 삼항 연산자: 항 3개로 연산

 

연산자와 피연산자

int num = 1000;
int number = num + 1234;

위의 코드에서 + 기호가 연산자, num과 1234가 피연산자가 된다.

 

 

변환 연산자: () 기호로 데이터 형식 변환하기

int number = (int)3.14;
Console.WriteLine(number);

//result: 3

() 기호를 사용하여 특정 값을 원하는 형식으로 변환할 수 있음

(ex) (int), (long), (double)

 

 

산술 연산자

사칙 연산을 하는 연산자

 

  • +: 더하기
  • -: 빼기
  • *: 곱하기
  • /: 나누기(몫) - 0으로 나누면 error 발생
  • %: 나머지
using System;

Class OperatorArithemetic
{
	static void Main()
    {
    	int a = 5;
        int b = 3;
        
        Console.WriteLine(a + b);
        Console.WriteLine(a - b);
        Console.WriteLine(a * b);
        Console.WriteLine(a / b);
        Console.WriteLine(a % b);
    }
}

/*
<result>
8
2
15
1
2
*/

 

문자열 연결 연산자

+연산자: 두 항이 숫자일 때는 산술(+) 기능, 문자열 일때는 문자열 연결 기능

string text1 = "Hello";
string text2 = "C#";

Console.WriteLine(text1 + text2);

//result: Hello C#
Console.WriteLine(123 + 456); // result: 579
Console.WriteLine("123" + "456"); // result: 123456
Console.WriteLine(123 + "456"); // result: 123456 (문자열과 숫자형은 문자열로 취급)
Console.WriteLine("123" + true); // result: 123True (문자열과 bool 형식은 문자열로 취급)

 

 

할당 연산자와 증감 연산자 사용하기

 

할당 연산자

변수에 대이터를 대입하는 데 사용하는 연산자로 대입 연산자라고도 불림

 

  • = (A = B): A에 B의 값 대입
  • += (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에 대입

 

변수 값 서로 바꾸기

변수의 값을 서로 바꿀 때는 일반적으로 임시로 데이터를 저장할 변수(temp)를 하나 만들어 진행한다.

var i = 100;
var j = 200;
var temp = i;
i = j;
j = temp;

 

증감 연산자

변수 값을 1 증가시키거다 1 감소시키는 연산자

 

  • ++(증가 연산자): 변수 값에 1을 더함
  • --(감소 연산자): 변수 값에 1을 뺌

전위 증감 연산자와 후위 증감 연산자

  • 전위 증감 연산자: 변수 앞에 연산자가 위치하여 변수 값을 미리 증감한 후 나머지 연산 수행
  • 후위 증감 연산자: 변수 뒤에 연산자가 위치하여 연산식(대입)을 먼저 실행한 수 나중에 변수값을 증감
int i = 3;
int j = ++i;
Console.WriteLine(i, j);
//result: 4, 4

int i = 3;
int j = i++;
Console.WriteLine(i, j);
//result: 4, 3

 

 

관계형 연산자와 논리 연산자 사용하기

 

관계형 연산자

관계형 연산자(비교 연산자)는 두 항이 큰지, 작은지 또는 같은지 등을 비교하는데 사용, 결과값은 논리 데이터 형식인 참(Ture) 또는 거짓(False)로 출력됨

 

  • < (A < B): A가 B보다 작으면 True, 그렇지 않으면 False
  • <= (A <= B): A가 B보다 작거나 같으면 True, 그렇지 않으면 False
  • > (A > B): A가 B보다 크면 True, 그렇지 않으면 False
  • >= (A >= B): A가 B보다 크거나 같으면 True, 그렇지 않으면 False
  • == (A == B): A가 B와 같으면 True, 그렇지 않으면 False
  • !- (A != B): A가 B와 같지 않으면 True, 그렇지 않으면 False

 

논리 연산자

논리 연산의 결과 값은 참(True) 또는 거짓(False)의 bool 형식으로 반환됨

 

  • && (A && B): A항과 B항 모두 참(True)일 때만 참(True), 그렇지 않으면 거짓(False)
  • || (A || B): A항과 B항 중 하나라도 참(True)이면 참(True), 그렇지 않으면 거짓(False)
  • ! (!A): A항이 참(True)이면 거짓(False)을, A항이 거짓(False)이면 참(True)을 반환

 

 

비트 연산자와 시프트 연산자로 비트 단위 연산하기

 

비트 연산자

비트 연산자는 정수형 데이터의 값을 이진수 비트 단위로 연산을 수행할 때 사용

 

  • & (논리곱, AND): 비트 값이 둘 다 1일 때만 1, 그렇지 않으면 0
  • | (논리합, OR): 비트 값이 하나라도 1이면 1, 그렇지 않으면 0
  • ^ (배타적 논리합, XOR): 비트 값이 서로 다를 때만 1, 그렇지 않으면 0
  • ~ (NOT): 비트 값이 1이면 0, 0이면 1

 

시프트 연산자

시프트 연산자는 정수 데이터가 담겨 있는 메모리의 비트를 왼쪽(<<) 또는 오른쪽(>>)으로 지정한 비트만큼 이동시킴

 

  • <<: 왼쪽 시프트
  • >>: 오른쪽 시프트
int number = 2;
Console.WriteLine(number << 1); // 0010(2) -> 0100(4)
Console.WriteLine(number >> 1); // 0010(2) -> 0001(1)

/*
<result>
4
1
*/

 

조건 연산자

조건 연산자는 조건에 따라서 참일 때와 거짓일 때 결과를 다르게 반환, ? : 형태의 연산자

(조건) ? 참일 때 : 거짓일 때

using System;

Class ConditionalOperator
{
	static void Main()
    {
    	int number = 3;
        
        //number가 짝수이면 result 변수에 "짝수", 홀수면 "홀수" 담기
        string result = (3 % 2 ==0) ? "짝수" : "홀수";
        
        Console.WriteLine($"{number}은(는) {result}입니다.");
    }
}

//result: 3은(는) 홀수입니다.
반응형