프로그램을 하면서 연산을 할경우는 수없이 많이 생긴다.
연산은 실제 샐황에서 사용하는 연산과 거의 비슷한 의미이다.
앞에서 문자열 더하는 공부를 했으니 + 는 이해했으리라 생각한다.
문자끼리는 문자연결을 수행하고 숫자끼리 더할경우는 실제 우리가 사용하는 + 기능을 수행한다.
- 와 / 는 실생활에서 사용하는 연산과 같고 곱셈 의 경우 * 를 사용하는데 이내용도 이미 알고 있으리라 생각한다.
기본적인 연산자외에 프로그램에서는 특별한 연산자들을 추가로 사용한다.
첫째로 나머지 연산자 % 이다.
예를 들면 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
***숙제 : 여러 연산자들을 사용해서 값을 연산해서 출력해보고 연습한 내용을 공유할것.
'[ Program ] > c#스터디' 카테고리의 다른 글
18.조건문(분기문) , bool형식 , 논리연산자2 - if (0) | 2021.09.20 |
---|---|
17.조건문(분기문) , bool형식 , 논리연산자1 - if (0) | 2021.09.20 |
15.주석 (0) | 2021.09.20 |
14.이름입력후 그대로 출력 프로그램 만들기 (0) | 2021.09.20 |
13.윈폼컨트롤 설명 (0) | 2021.09.20 |
댓글