본문 바로가기
메타버스기반게임콘텐츠기획/스터디(C#이 보이는 그림책)

2장, 연산자 (2-2)

by Queenut 2021. 11. 17.

* 비교 연산자

 : 변수의 값이나 수치를 비교해 조건식을 만들고 결과에 따라 처리하는 연산자.

참(True, 1) 값: 조건이 성립한다.

거짓(False, 0) 값: 조건이 정립하지 않는다.

두 연산자 사이에는 공백(띄어쓰기)이 있어선 안된다.

연산자 기능 사용법 의미
== = ,같음 a == b a와 b는 같다.
< < ,보다 작음 a < b a는 b보다 작다.
> > ,보다 큼 a > b a는 b보다 크다.
<= ≤ ,이하 a <= b a는 b보다 작거나 같다.
>= ≥ ,이상 a >= b a는 b보다 크거나 같다.
!= ≠ ,같지 않음 a != b a와 b는 같지 않다.

Q. a와 b는 같지 않는게 맞는데 왜 False일까?

 

 

bool : T 혹은 F 중 한 값만 가진 변수형. 참과 거짓을 파악하고 답을 갖고있는 변수로 보면 된다.

 

 * 조건 연산자

 : (조건식) ? (True) : (False) ;

  → (조건식)이 맞나? 맞으면 (True)(: 앞의 값), 틀리면 (False)(: 뒤의 값)를 반환.

 

첫 번째로 "정답"이 출력된 이유는 내가 앞에 value를 true라고 했기 때문이고, "오답"이 출력된 이유는&nbsp; &nbsp; &nbsp; &nbsp;두 번째의 vlaue값을 false라고 했기 때문이다. 실제 참/거짓을 판단한 것은 아니다.

 

 

 * 논리 연산자

 : 더 복잡한 조건을 나타낼 때 사용하는 것.

논리 연산자 기능 사용법 의미
&, && 그리고(모두 참일때 1) (a>=10) && (a<50) a는 10 이상이고 50 미만이다.
|, || 또는(둘 중 하나만 참이어도 1) (a==1) || (a==100) a는 1 또는 100이다.
! ~이(가) 아니다 ! (a == 100) a는 100이 아니다.

액셀의 and, or, <> 같네

 

* 단락 평가

&& 혹은 || 은 단락 평가의 연산자이다. 효율을 높이기 위해 필요 없는 평가는 생략한다.

& 혹은 |은 생략하지 않는다.

---컴퓨터는 귀찮은 일을 하지 않는다.

앞에서 참이란걸 컴퓨터가 안다면 뒤에 것은 계산하지 않는다.

만약 숫자가 커지면 계산이 오래걸리니까 빨리 하라고 이런 연산자가 있는건가?

 

 

 * 연산자의 우선순위

1. 연산은 →(왼쪽에서 오른쪽)

2. 대입은 ←(오른쪽에서 왼쪽)

3. x 가 +보다 먼저

4. 괄호 안에 든 것을 먼저

우선순위 연산자 같은 순위일때의 계산 방향
1 [ ]. (마침표, 대상의 구성원을 선택) ( ) ++(후치)
--(후치) checked unchecked new sizeof typeof
 
2 ++ (전치) -- (전치) + (부호) - (부호) ~ !
3 * / %
4 + -
5 << >>
6 < > <= >= is as
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= >>= <<= >>>= &= ^= |=

 

 

 

 * 계산 중 발생하는 형 변환

정수3 / 정수2 = 실수1.5 ← 형이 바뀜

아 C#언어는 그런거 없지^^ 아주 친절해서 실수 하나만 있어도 바꿔주지~

정수끼리 계산하면 범위가 가장 큰 형으로 변환된다.

short s =536;

byte b = 12;

int a = s + b;

(바이트의 범위는 -127~128, 숏 형으로 변환된 548이 int형 변수 a에 대입된다.)

 

가능한 대입

-정수형을 실수형에 대입

-범위가 더 큰 형에 대입

 

불가능한 대입(p63)

-실수, 정수형을 decimal형에 대입

-decimal형을 실수형에 대입

-범위가 더 작은 형에 대입

-수치형을 문자형에 대입

-범위가 감당할 수 없는 형에 대입

 

 

 * 캐스트 연산자

: 형명을 ( )로 묶은 것. 수치와 같은 호환성 있는 형인 경우, 값이나 변수 앞에 쓰면 지정한 형으로 변환할 수 있다. 이걸 형환이라 부른다.