Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료
C++ 프로그래밍Unit 2: 자료형과 변수Topic 3: 연산자와 표현식

Topic 3: 연산자와 표현식 🔢

학습 목표

  • C++의 다양한 연산자들을 이해하고 사용할 수 있다
  • 연산자 우선순위를 파악하여 올바른 표현식을 작성할 수 있다
  • 증감 연산자와 대입 연산자를 적절히 활용할 수 있다

산술 연산자

기본적인 수학 연산을 수행하는 연산자들입니다.

#include <iostream> using namespace std; int main() { int a = 15, b = 4; cout << "a = " << a << ", b = " << b << endl; cout << "덧셈: " << a << " + " << b << " = " << (a + b) << endl; cout << "뺄셈: " << a << " - " << b << " = " << (a - b) << endl; cout << "곱셈: " << a << " * " << b << " = " << (a * b) << endl; cout << "나눗셈: " << a << " / " << b << " = " << (a / b) << endl; cout << "나머지: " << a << " % " << b << " = " << (a % b) << endl; // 실수 나눗셈 double x = 15.0, y = 4.0; cout << "실수 나눗셈: " << x << " / " << y << " = " << (x / y) << endl; return 0; }

주의사항:

  • 정수끼리 나눗셈은 소수점 이하를 버림 (15/4 = 3)
  • 나머지 연산자(%)는 정수에만 사용 가능
  • 0으로 나누기는 실행 오류 발생

대입 연산자

변수에 값을 할당하는 연산자들입니다.

#include <iostream> using namespace std; int main() { int x = 10; cout << "초기값: x = " << x << endl; // 복합 대입 연산자 x += 5; // x = x + 5와 같음 cout << "x += 5: x = " << x << endl; x -= 3; // x = x - 3와 같음 cout << "x -= 3: x = " << x << endl; x *= 2; // x = x * 2와 같음 cout << "x *= 2: x = " << x << endl; x /= 4; // x = x / 4와 같음 cout << "x /= 4: x = " << x << endl; x %= 5; // x = x % 5와 같음 cout << "x %= 5: x = " << x << endl; return 0; }

증감 연산자

변수의 값을 1 증가시키거나 1 감소시키는 연산자입니다.

#include <iostream> using namespace std; int main() { int a = 5, b = 5; cout << "초기값: a = " << a << ", b = " << b << endl; // 전위 증감 연산자 (먼저 증감 후 사용) cout << "++a = " << ++a << endl; // a를 먼저 6으로 증가 후 출력 cout << "현재 a = " << a << endl; cout << "--a = " << --a << endl; // a를 먼저 5로 감소 후 출력 cout << "현재 a = " << a << endl; // 후위 증감 연산자 (먼저 사용 후 증감) cout << "b++ = " << b++ << endl; // b를 먼저 출력(5) 후 6으로 증가 cout << "현재 b = " << b << endl; cout << "b-- = " << b-- << endl; // b를 먼저 출력(6) 후 5로 감소 cout << "현재 b = " << b << endl; return 0; }

증감 연산자 활용 예제

#include <iostream> using namespace std; int main() { int count = 0; cout << "현재 count: " << count << endl; cout << "count++ 실행 후 반환값: " << count++ << endl; cout << "실행 후 count: " << count << endl; cout << "\n++count 실행 후 반환값: " << ++count << endl; cout << "실행 후 count: " << count << endl; // 실제 활용 사례: 반복문에서 카운터 int i = 0; cout << "\n카운터 예제:" << endl; while (i < 5) { cout << "i의 현재 값: " << i++ << endl; // i를 출력한 후 증가 } cout << "반복 종료 후 i: " << i << endl; return 0; }

비교 연산자

두 값을 비교하여 참(true) 또는 거짓(false)을 반환합니다.

#include <iostream> using namespace std; int main() { int x = 10, y = 20; cout << "x = " << x << ", y = " << y << endl; cout << boolalpha; // true/false로 출력 cout << "x == y: " << (x == y) << endl; // 같다 cout << "x != y: " << (x != y) << endl; // 다르다 cout << "x > y: " << (x > y) << endl; // 크다 cout << "x < y: " << (x < y) << endl; // 작다 cout << "x >= y: " << (x >= y) << endl; // 크거나 같다 cout << "x <= y: " << (x <= y) << endl; // 작거나 같다 return 0; }

논리 연산자

논리값(true/false)을 다루는 연산자들입니다.

#include <iostream> using namespace std; int main() { bool a = true, b = false; cout << boolalpha; cout << "a = " << a << ", b = " << b << endl; cout << "a && b (논리곱): " << (a && b) << endl; // 둘 다 참일 때 참 cout << "a || b (논리합): " << (a || b) << endl; // 하나라도 참이면 참 cout << "!a (논리부정): " << !a << endl; // 참을 거짓으로, 거짓을 참으로 cout << "!b (논리부정): " << !b << endl; // 실제 조건 예제 int age = 25; bool hasLicense = true; if (age >= 18 && hasLicense) { cout << "\n운전할 수 있습니다." << endl; } if (age < 18 || !hasLicense) { cout << "운전할 수 없습니다." << endl; } return 0; }

연산자 우선순위

연산자들은 실행되는 순서가 정해져 있습니다.

#include <iostream> using namespace std; int main() { // 기본 우선순위 int result1 = 2 + 3 * 4; // 곱셈이 먼저: 2 + 12 = 14 int result2 = (2 + 3) * 4; // 괄호가 먼저: 5 * 4 = 20 cout << "2 + 3 * 4 = " << result1 << endl; cout << "(2 + 3) * 4 = " << result2 << endl; // 복잡한 표현식 bool result3 = 5 > 3 && 2 < 4 || false; // 순서: 5>3 (true), 2<4 (true), true && true (true), true || false (true) cout << "5 > 3 && 2 < 4 || false = " << boolalpha << result3 << endl; // 증감 연산자 우선순위 int x = 5; int y = ++x * 2; // 먼저 x를 6으로 증가시킨 후 2를 곱함 cout << "x = " << x << ", y = " << y << endl; return 0; }

주요 우선순위 (높은 순서부터):

  1. () - 괄호
  2. ++, -- - 증감 연산자
  3. *, /, % - 곱셈, 나눗셈, 나머지
  4. +, - - 덧셈, 뺄셈
  5. <, <=, >, >= - 비교 연산자
  6. ==, != - 동등 연산자
  7. && - 논리곱
  8. || - 논리합
  9. =, +=, -= 등 - 대입 연산자

조건부 연산자 (삼항 연산자)

간단한 if-else 문을 대체할 수 있는 연산자입니다.

#include <iostream> using namespace std; int main() { int a = 10, b = 20; // 기본 형태: 조건 ? 참일때값 : 거짓일때값 int max = (a > b) ? a : b; cout << "더 큰 값: " << max << endl; // 문자열도 가능 string status = (a % 2 == 0) ? "짝수" : "홀수"; cout << a << "는 " << status << "입니다." << endl; // 간단한 예제 int score = 85; string result = (score >= 80) ? "합격" : "불합격"; cout << "점수 " << score << "점: " << result << endl; return 0; }

실습 과제

기초 실습

  1. 두 정수를 입력받아 사칙연산 결과를 모두 출력하는 프로그램을 작성해보세요.
  2. 정수 하나를 입력받아 그 수의 제곱, 세제곱을 계산하여 출력하는 프로그램을 작성해보세요.

심화 실습

  1. 상품 가격과 할인율을 입력받아 최종 가격을 계산하는 프로그램을 작성해보세요.
  2. 시험 점수를 입력받아 60점 이상이면 “합격”, 그 미만이면 “불합격”을 삼항 연산자로 출력하는 프로그램을 작성해보세요.

핵심 포인트

  • 산술 연산자: +, -, *, /, % - 기본 수학 연산
  • 대입 연산자: =, +=, -=, *=, /=, %= - 값 할당과 복합 연산
  • 증감 연산자: ++, -- - 전위와 후위의 차이 이해 중요
  • 비교 연산자: ==, !=, >, <, >=, <= - 조건문에서 주로 사용
  • 논리 연산자: &&, ||, ! - 복합 조건 표현
  • 우선순위: 괄호를 활용하여 명확하게 표현
  • 삼항 연산자: 간단한 조건부 값 할당에 유용

✅ 연산자와 표현식 체크리스트

다음 토픽에서는 자료형 간의 변환에 대해 배워보겠습니다.

Last updated on