비교 연산과 논리 연산

Jaemyeong Lee·2024년 12월 6일
0

🧠 주제

  • C++에서 사용되는 비교 연산자(==, !=, <, > 등), 논리 연산자(&&, ||, !), 그리고 연산자의 우선순위에 대해 다룬다.
  • 조건문이나 반복문처럼 프로그램 흐름을 제어하는 구조에서 필수적으로 사용되는 이 연산자들의 기능, 사용법, 연산 순서, 그리고 주의사항을 예제 코드와 함께 구체적으로 설명한다.
  • 복잡한 조건식을 괄호를 통해 어떻게 명확하게 만들 수 있는지까지 포괄적으로 안내한다.

💡 개념

1. 비교 연산자 (Comparison Operators)

  • 두 값을 비교하여 논리형 결과(true/false)를 반환하는 연산자.
  • 조건문(if, while 등)에서 매우 자주 사용된다.
  • true1, false0으로 출력된다.

2. 논리 연산자 (Logical Operators)

  • 여러 조건을 결합하거나 반전시켜 하나의 논리값을 도출하는 연산자.
  • 복잡한 조건 판단에 필수적이다.
    • &&: 둘 다 참일 때만 참
    • ||: 하나라도 참이면 참
    • !: 참을 거짓으로, 거짓을 참으로

3. 연산자 우선순위 (Operator Precedence)

  • 여러 연산자가 혼합된 식에서 어떤 연산이 먼저 수행되는지를 결정.
  • 우선순위를 잘못 이해하면 의도하지 않은 결과가 발생할 수 있음.
  • 소괄호 ()를 사용하면 우선순위를 직접 지정 가능.

📚 용어정리

용어설명
비교 연산자두 값을 비교하여 true/false 반환. (==, !=, <, > 등)
논리 연산자논리적 조건 판단에 사용 (&&,
true / false참(1)과 거짓(0)의 논리 값
우선순위연산 수행의 순서 결정 규칙
괄호 ()우선순위를 명확하게 지정하는 수단
조건문조건이 참일 때만 특정 코드를 실행하는 구문
논리곱 &&두 조건 모두 참일 때 true
논리합 `
논리부정 !조건의 참/거짓을 반전
단항 연산자피연산자가 하나인 연산자 (!, ++ 등)

💻 코드 분석

✅ 비교 연산자 사용

int a = 10;
int b = 20;
bool result;

result = (a == b); // false
result = (a != b); // true
  • ==: 두 값이 같으면 true, 다르면 false
  • !=: 두 값이 다르면 true, 같으면 false
  • 결과는 result 변수에 true/false 형태로 저장됨

✅ 논리 연산자 사용

bool isRich = true;
bool isTall = false;

bool result = isRich || isTall;
  • ||는 OR 연산: 둘 중 하나라도 true면 전체 결과 true
  • 출력 시 true → 1, false → 0

✅ 연산 우선순위

int hp = 100;
int a = 5;
int b = 2;

cout << (100 * (2 + 5) / 2); // 결과: 350

계산 순서:

  1. 괄호: 2 + 5 = 7
  2. 곱셈: 100 * 7 = 700
  3. 나눗셈: 700 / 2 = 350

→ 괄호가 없었다면 다른 결과가 나올 수 있음. 우선순위 제어의 대표 사례


✅ 복합 조건식

int age = 20;
bool hasID = true;

if ((age >= 18) && hasID) {
    cout << "Access granted.";
}
  • age >= 18 → true
  • hasID → true
  • true && true → 조건 만족 → 출력됨: "Access granted."

✅ 연산자 우선순위

int a = 5, b = 3, c = 8;

cout << (a > b || b > c && c > a);

해석 순서:

  1. b > c && c > a:
    • 3 > 8 → false
    • 8 > 5 → true
    • false && true → false
  2. a > b || false5 > 3 → true
    → 최종 결과는 true → 출력: 1

&&||보다 우선순위가 높기 때문에 먼저 계산된다.


✅ 정수 → 논리값

if (5) {
    cout << "True";
}
  • 5는 정수지만, 0이 아니므로 true로 간주된다
  • 0만 false로 인식되며, 나머지 정수는 모두 true

🔑 핵심

  • 비교 연산자는 조건문에서 두 값의 관계를 판별하는 핵심 도구다.
  • 논리 연산자는 복수의 조건을 조합하거나 부정하여 보다 정밀한 조건 판단을 가능하게 한다.
  • 우선순위를 정확히 이해하고 괄호를 활용하여 순서를 명시하면 예측 가능한 코드가 된다.
  • &&는 두 조건이 모두 참일 때만 실행되며, ||는 하나라도 참이면 실행된다.
  • !는 참을 거짓으로, 거짓을 참으로 바꾸는 단항 연산자이다.
  • 정수값 0은 false, 그 외 값은 true로 간주되므로 조건식에서 유의해야 한다.
  • 조건 판단과 논리 흐름 제어는 프로그램의 안정성과 신뢰성을 좌우하므로, 이들 연산자의 정확한 이해와 올바른 사용이 반드시 필요하다.

profile
李家네_공부방

0개의 댓글