CodeGym /행동 /C# SELF /논리 타입 bool과 논리 연산

논리 타입 bool과 논리 연산

C# SELF
레벨 3 , 레슨 3
사용 가능

1. 논리 데이터 타입: bool

이미 봤듯이, C#에는 진짜 유용한 연산자 if-else가 있어. 괄호 안 조건이 true면 한 블록, false면 다른 블록을 실행하지.

true나 false가 될 수 있는 표현식을 다루기 편하게, C#에는 bool이라는 특별한 타입이 있어. 이 타입의 변수는 딱 두 값만 가질 수 있어: true ()랑 false (거짓).

bool 타입 변수에는 다른 값을 넣을 수 없어. 컴파일러가 허락 안 해.

bool 타입 변수 예시:

bool isAdult = true;
bool hasMoney = false;
bool 타입 변수 선언 예시

bool 타입 변수는 오직 두 값만 가질 수 있어 — true (참)랑 false (거짓). 끝! 거의 테스트 결과처럼 — "통과" 아니면 "실패"(읏차).

2. 비교 연산

이렇게 단순한 타입이 왜 필요할까? bool의 진짜 힘은 논리식을 만들 때 나와. 보통 비교 연산자를 써서 만들지.

연산자 의미 예시
== 같다
a == b
true 또는 false
!= 같지 않다
a != b
true 또는 false
> 크다
a > b
true 또는 false
< 작다
a < b
true 또는 false
>= 크거나 같다
a >= b
true 또는 false
<= 작거나 같다
a <= b
true 또는 false

예시:

int age = 20;
bool isAdult = age >= 18;   // true (20은 18보다 크거나 같음)
bool isTeenager = age >= 13 && age < 18; // false (20은 18보다 작지 않음)
bool isEven = age % 2 == 0; // true (20은 2로 나누어 떨어짐)

여기서 isAdulttrue가 돼. 왜냐면 20살은 진짜 "성인"이니까.

중요 포인트 1:

두 글자로 된 연산자는 띄면 안 돼.


a < = 10
speed > = max
age = = 18
time ! = 0
이렇게 쓰면 안 돼! 비교 연산자는 붙여서 써야 해: <=, >=, ==, !=

중요 포인트 2:

=>=< 연산자는 없어: <=>=만 있어. a =< 3 이렇게 쓰면 코드가 컴파일 안 돼.

중요 포인트 3:

C#에서는 18 < age < 65 이런 식으로 못 써. 18 < age의 결과는 truefalse가 되고, true < 65처럼 타입이 달라서 비교가 안 돼. 적어도 C#에서는 그래.

3. 논리 연산

C#에서는 18 < age < 65 이런 식으로 못 써 — 문법적으로 틀려서 컴파일이 안 돼.

대신 이렇게 쓸 수 있어:


(18 < age) 그리고 (age < 65)
두 조건이 있는 논리식 (한국어로)

물론 그리고 대신 다른 논리 연산자를 써야 하고, 이제 그 얘기를 할 거야.

C#에는 세 가지 논리 연산자가 있어: AND (그리고), OR (또는), NOT (아니).

좋은 소식: 괄호를 쓰면 아무리 복잡한 논리식도 만들 수 있어.
나쁜 소식: C# 개발자들은 and, or, not 대신 C++ 스타일 기호를 쓰기로 했어.

논리 연산자 기대 현실
그리고 (∧) and &&
또는 (∨) or ||
아니 (¬) not !

여기 C#에서 논리 연산자 쓰는 예시 몇 개:

표현식 풀이 설명
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) 그리고 (a < 100)
(!a) && (!b) (not a) and (not b) (아니 a) 그리고 (아니 b)
!(!a || !b) not((not a) or (not b)) 아니((아니 a) 또는 (아니 b))

4. 진리표

논리 연산을 간단히 정리해볼게.

AND 연산자

AND, 즉 그리고, &&, 교집합, 논리 곱이라고도 해.

표현식 결과
true && true true
true && false false
false && true false
false && false false

즉, 두 값이 모두 true (참)일 때만 결과가 true (참)야. 나머지는 항상 false (거짓).

OR 연산자

OR, 즉 또는, ||, 합집합, 논리 합이라고도 해.

표현식 결과
true || true true
true || false true
false || true true
false || false false

즉, 둘 중 하나라도 true (참)이면 결과는 true (참)이야. 둘 다 false면 결과도 false.

NOT 연산자

NOT, 즉 아니, !, 반전이라고도 해.

표현식 결과
! true false
! false true

truefalse로, falsetrue로 바꿔.

꿀팁 논리식:

표현식 결과
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. 논리 연산 예시: and, or, not

"그리고" 연산, AND, &&로 표시

두 변수 모두 참일 때만 결과가 참이야.

int age = 16;
bool hasTicket = true;
bool canAttend = age >= 14 && hasTicket; // true (16은 14보다 크고, 티켓 있음)

14살 이상 그리고 티켓 있으면 — 입장!

"또는" 연산, OR, (||)로 표시

둘 중 하나라도 참이면 결과가 참이야.

bool isAdmin = false;
bool isModerator = true;
bool canEdit = isAdmin || isModerator; // true (둘 중 하나라도 true면 편집 가능)

관리자 또는 모더레이터면 — 버튼 눌러도 돼!

"아니" 연산, NOT, (!)로 표시

참을 거짓으로, 거짓을 참으로 바꿔.

bool isWeekend = false;
bool shouldGoToWork = !isWeekend; // true (주말 아니면 출근)

아니 주말이면 — 일어나야지!

조합: 아무리 복잡한 조건도 만들 수 있어

논리 연산은 얼마든지 조합할 수 있어 (너무 복잡하게만 안 하면 돼, "그가 아니 아니 아니 아니 관리자면..." 이런 거 말고). 괄호는 (꼭!) 써서 보기 쉽게 하자.

예시:

int age = 17;
bool hasTicket = false;
bool isVip = true;

bool canGo = (age >= 18 && hasTicket) || isVip; // true, isVip = true라서

여기서 논리는: 성인이고 티켓 있거나, VIP면 입장. VIP 아니면 성인+티켓만 입장 가능.

2
과제
C# SELF, 레벨 3, 레슨 3
잠금
bool 타입을 사용한 가장 간단한 표현식
bool 타입을 사용한 가장 간단한 표현식
2
과제
C# SELF, 레벨 3, 레슨 3
잠금
성인 여부와 상태 확인
성인 여부와 상태 확인
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION