Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료
C++ 프로그래밍Unit 3: 제어문Topic 2: 비교 연산자와 논리 연산자

Topic 2: 비교 연산자와 논리 연산자 ⚖️

🎯 학습 목표

  • 비교 연산자의 종류와 사용법을 익힐 수 있다
  • 논리 연산자를 활용해 복합 조건을 만들 수 있다
  • 실제 프로그램에서 조건식을 작성할 수 있다

🔍 비교 연산자

프로그램에서 값들을 비교하기 위해 사용하는 연산자들입니다.

기본 비교 연산자

연산자의미예시결과
==같다5 == 5true
!=다르다5 != 3true
>크다7 > 3true
<작다3 < 7true
>=크거나 같다5 >= 5true
<=작거나 같다3 <= 7true

실습 예제

#include <iostream> using namespace std; int main() { int age = 20; int score = 85; // 비교 연산자 사용 cout << "나이가 18세 이상인가? " << (age >= 18) << endl; cout << "점수가 90점인가? " << (score == 90) << endl; cout << "점수가 80점보다 높은가? " << (score > 80) << endl; return 0; }

🧠 논리 연산자

여러 조건을 조합하여 복합적인 조건을 만들 때 사용합니다.

논리 연산자 종류

연산자의미설명예시
&&AND (그리고)모든 조건이 true일 때 trueage >= 18 && score >= 60
||OR (또는)하나라도 true이면 truename == "admin" || level > 10
!NOT (아니다)true를 false로, false를 true로!(age < 18)

논리 연산자 활용 예제

#include <iostream> using namespace std; int main() { int age = 22; int score = 75; bool hasLicense = true; // AND 연산자 (&&) if (age >= 18 && hasLicense) { cout << "운전할 수 있습니다!" << endl; } // OR 연산자 (||) if (score >= 90 || age <= 12) { cout << "특별 혜택을 받을 수 있습니다!" << endl; } // NOT 연산자 (!) if (!(score < 60)) { cout << "합격입니다!" << endl; } return 0; }

🎮 실전 연습

게임 입장 조건 체크 프로그램

#include <iostream> using namespace std; int main() { int age; int level; bool hasTicket; cout << "나이를 입력하세요: "; cin >> age; cout << "레벨을 입력하세요: "; cin >> level; cout << "티켓이 있나요? (1: 있음, 0: 없음): "; cin >> hasTicket; // 복합 조건 검사 if ((age >= 12 && hasTicket) || level >= 50) { cout << "🎮 게임 입장 가능합니다!" << endl; if (age >= 18 && level >= 30) { cout << "⭐ VIP 라운지도 이용 가능합니다!" << endl; } } else { cout << "❌ 입장 조건을 만족하지 않습니다." << endl; } return 0; }

💡 주의사항

1. ===의 차이

int x = 5; // 잘못된 사용 (대입 연산자) if (x = 3) { // x에 3을 대입하고 true 반환 cout << "항상 실행됨" << endl; } // 올바른 사용 (비교 연산자) if (x == 3) { // x와 3을 비교 cout << "x가 3일 때만 실행됨" << endl; }

2. 단락 평가 (Short-circuit Evaluation)

int a = 0; // && 연산에서 첫 번째가 false이면 두 번째는 평가하지 않음 if (a != 0 && 10/a > 2) { // 안전함: a가 0이면 나눗셈 실행 안 됨 cout << "조건 만족" << endl; } // || 연산에서 첫 번째가 true이면 두 번째는 평가하지 않음 if (a == 0 || 10/a > 2) { // 안전함: a가 0이면 나눗셈 실행 안 됨 cout << "조건 만족" << endl; }

🏆 연산자 우선순위

우선순위 규칙

연산자들도 수학처럼 계산 순서가 정해져 있습니다!

  1. 괄호 () - 가장 높은 우선순위
  2. NOT ! - 논리 부정
  3. 비교 연산자 - <, >, <=, >=
  4. 동등 연산자 - ==, !=
  5. AND && - 논리곱
  6. OR || - 논리합
#include <iostream> using namespace std; int main() { int x = 5, y = 10, z = 15; // 우선순위를 고려한 계산 bool result1 = x < y && y < z; // (x < y) && (y < z) cout << "x < y && y < z: " << result1 << endl; // true // 괄호를 사용한 명확한 표현 bool result2 = (x == 5 || y == 5) && z > 10; cout << "(x == 5 || y == 5) && z > 10: " << result2 << endl; // true // NOT 연산자의 우선순위 bool result3 = !x > 0; // (!x) > 0 으로 계산됨 (주의!) bool result4 = !(x > 0); // 의도한 대로 계산 cout << "!x > 0: " << result3 << endl; // false cout << "!(x > 0): " << result4 << endl; // false return 0; }

📚 실전 활용 예제

짝수/홀수 판별 프로그램

#include <iostream> using namespace std; int main() { int number; cout << "숫자를 입력하세요: "; cin >> number; // 논리 연산자 활용 // 짝수이면서 양수인지 확인 if (number % 2 == 0 && number > 0) { cout << number << "는 양수이면서 짝수입니다! ✨" << endl; } else if (number % 2 == 0) { cout << number << "는 짝수입니다." << endl; } else { cout << number << "는 홀수입니다." << endl; } return 0; }

간단한 성적 판별 시스템

#include <iostream> using namespace std; int main() { int score; bool attendance_good; cout << "점수를 입력하세요: "; cin >> score; cout << "출석이 좋나요? (1: 예, 0: 아니오): "; cin >> attendance_good; // 논리 연산자 활용 if (score >= 90 && attendance_good) { cout << "🏆 A등급입니다!" << endl; } else if (score >= 80 || attendance_good) { cout << "🥈 B등급입니다!" << endl; } else if (score >= 70) { cout << "🥉 C등급입니다!" << endl; } else { cout << "📚 더 열심히 공부하세요!" << endl; } return 0; }

🎯 도전 과제

과제 1: 놀이공원 입장 프로그램

나이와 키를 입력받아 놀이기구 이용 가능 여부를 확인하세요.

  • 7세 이상이면서 120cm 이상: 모든 놀이기구 이용 가능
  • 5세 이상이거나 110cm 이상: 일부 놀이기구 이용 가능
// 힌트 구조 int age, height; cout << "나이를 입력하세요: "; cin >> age; cout << "키를 입력하세요(cm): "; cin >> height; // 여기에 코드를 작성하세요

과제 2: 간단한 로그인 시스템

사용자 이름과 비밀번호를 입력받아 로그인 성공 여부를 확인하세요.

  • 관리자: admin/1234 또는 root/0000
  • 일반 사용자: user/1234
// 힌트 구조 string username, password; cout << "사용자명: "; cin >> username; cout << "비밀번호: "; cin >> password; // 여기에 코드를 작성하세요

📝 핵심 정리

  • 비교 연산자: 두 값을 비교하여 true/false 반환
  • 논리 연산자: 여러 조건을 조합하여 복합 조건 생성
  • 단락 평가: 불필요한 연산을 건너뛰어 효율성과 안전성 향상
  • 우선순위: 괄호를 사용하여 명확한 의도 표현
  • 실전 활용: 실제 문제 해결에 적절한 연산자 조합 사용

다음 토픽에서는 여러 조건을 더 깔끔하게 처리할 수 있는 switch문에 대해 배워보겠습니다!

Last updated on