본문 바로가기
[ Program ]/c#스터디

16.연산자

by 관이119 2021. 9. 20.





프로그램을 하면서 연산을 할경우는 수없이 많이 생긴다.

연산은 실제 샐황에서 사용하는 연산과 거의 비슷한 의미이다.

 

앞에서 문자열 더하는 공부를 했으니 + 는 이해했으리라 생각한다.

문자끼리는 문자연결을 수행하고  숫자끼리 더할경우는 실제 우리가 사용하는 + 기능을 수행한다.

- 와 / 는 실생활에서 사용하는 연산과 같고 곱셈 의 경우 * 를 사용하는데 이내용도 이미 알고 있으리라 생각한다.

 

 

 

기본적인 연산자외에 프로그램에서는 특별한 연산자들을 추가로 사용한다.

 

첫째로 나머지 연산자 % 이다.

예를 들면 10을 3으로 나누면 몫이 3이고 나머지가 1 인데 이 1값을 대입해준다.

 

int a = 10%3;

위와같은 코드는 a를 출력하면 1 이 나온다.

나머지연산자는 생각외로 여기저기 쓰이는 곳이 많아서 꼭 기억해둬야한다.

특히 뭔가 만들다가 배수로 데이터를 가져와야하는경우 꼭 쓰인다.

 

 

다음으로 ++ 와 -- 이다.

위기호는 1을 더해주고 1을 빼주는 행동을 한다.

둘다 같은 형태로 작동하는데 ++ 를 예로 보면 변수 앞에 ++ 를 쓰면 값을 1 더해서 변수에 입력하고 변수뒤에 ++ 를 써주면 값을 대입한뒤에 1 을 더해준다.

아래 예제를 보자.

 

<예제1>

int a = 10;

int b = ++a;

MessageBox.Show(b.ToString());

 

<예제2>

int a = 10;

int b = a++;

MessageBox.Show(b.ToString());

 

위 두가지 예제는 서로 다른값이나온다.

예제1 같은경우는 a에 값을 더한 후 b 에 값을 넣어주고 , 예제2같은경우는 a의 값을 b 에 넣은후 a의 값에 1을 더해준다.

보통 여기저기 사용하다 보면 예제2의 경우를 흔하게 쓰는데 둘의 차이점 정도는 알아두고 넘어가자.

 

 

 

그리고 할당연산자(대입연산자) 라는것이 있는데 = 등호는 일반실생활에서 사용하는것과 같다.

+= , -= , /= 와 같은 연산자들도 있는데 += 를 예로 살펴보면 더한값을 대입한다는 의미이다.

아래예제를 보자

 

int a = 0;

int b = 10;

 

<예제1>

b = b + a;

 

<예제2>

b += a;

 

위 예제 1과 2는 같은의미를 가진다.

그리고 + 뿐만아니라 다른 연산자도 + 위치에 대입해서 사용가능하다. 의미는 + 를 사용할때와 같다.

 

 

비교연산자는 두가지 값을 비교할때 쓴다.

a < b 

위와 같은경우 일반적으로 알고 있는 a 가 b 보다 작다와 같은 의미이다.

저기서 = 를 더하면 

a <= b

처럼 되는데 이경우는 a 가 b 보다 작거나 같다는 의미이다.

부등호와 등호를 함께 쓸경우는 꼭 부등호가 앞에 와야한다는 규칙이 있다.

<=  는 가능하지만 =< 는 불가능하다는 의미이다.

이는 내가 알고 있는 모든언어에 해당하는 규칙이다.

그리고 두개의 값을 비교할때 두개의 값이 일치하는지 확인할때는 = 하나만 쓰면안된다.

 

언어마다 차이가 있는경우도 있긴한데 거의 대부분은 = 는 값을 대입할때쓰고

두개의 값이 일치하는지 비교하는 경우는 == 로 두개를 써준다.

특히 다음장에 배울 조건문에서 가장 많이 쓰는 내용인데 두개는 전혀다른 의미이므로 꼭 기억해야한다.

 

 

 

논리연산자라는 것도 있는데 && 와 || 같은것들이다.

해당연산자들은 나중에 배울 조건문을 사용할때 자주 같이 쓰이는데 && 는 교집합 || 는 합집합이다.

이연산자들은 나중에 조건문 배울때 다시 확인해보자.

 

 

다른연산자들은 아래표를 참고하면 되는데 비트나 쉬프트 연산자는 나도 따로 사용한적이없다.

일단 저런것들이 있다고만 알아두고 나중에 사용할일이 생기면 찾아보면서 쓰자.

 

 

연산자 타입연산자예제

산술 연산자 +, -, *, /, % int a = (x + y - z) * (b / c) % d;
할당 연산자 =, +=, -=, *=, /=, %= int a = 100;
sum += a;
[설명] sum += a 는 sum = sum + a 를 축약한 표현이다.
증감 연산자 ++, -- int i = 1;
i++;
[설명] i++ 는 i = i + 1 를 축약한 표현이다.
논리 연산자 && (And), || (Or), ! (Not) if ((a > 1 && b < 0) || c == 1 || !d)
관계/비교 연산자 <, >, ==, !=, >=, <= if (a <= b)
비트 연산자 & (AND), | (OR), ^ (XOR) byte a=7;
byte b=(a & 3) | 4;
[설명] 비트 연산에서 & 는 둘이 1인 경우만 1이 되고 (예: 1 & 1 = 1), | 는 둘 중에 하나라도 1인 경우 1이 되며, ^ 는 둘 중에 하나만 1 인 경우 1이 된다.
Shift 연산자 >>, << int i=2;
i = i << 5;
[설명] i의 값을 왼쪽으로 5 비트 이동한다. 결과값은 2의 6승 즉 64가 된다.
조건 연산자 ?
?? (C# 3.0 이상만 지원)
int val = (a > b) ? a : b;
[설명] a가 b보다 크면 val에 a 값을 대입하고, 같거나 작으면 b 값을 대입한다
string s = str ?? "(널)";
[설명] 변수 str가 null 이면 "(널)" 이라는 문자열을 s 에 대입한다. null 이 아니면 str의 값을 s 에 대입.

 

아래링크 내용도 한번 읽어보자.

www.csharpstudy.com/CSharp/CSharp-operator.aspx

 

C# 연산자 - C# 프로그래밍 배우기 (Learn C# Programming)

C# 연산자 C#은 다른 프로그래밍 언어와 비슷하게 수식 연산자, 논리 연산자, 조건 연산자등 다양한 연산자들을 제공하고 있다. 아래 표는 각 카테코리별 연산자 및 그 샘플을 예시한 것이다. 연

www.csharpstudy.com

 

 

 

***숙제 : 여러 연산자들을 사용해서 값을 연산해서 출력해보고 연습한 내용을 공유할것.

댓글