Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

맛있는 개발노트 (맛과 개발을 함께)

C# 세미나 자료: 표현식과 연산자 (Expressions & Operators) 본문

C# 학습/C# 언어의 기초

C# 세미나 자료: 표현식과 연산자 (Expressions & Operators)

DevGourmet 2025. 4. 8. 02:35

1. 개요

C#에서 **표현식(Expression)**은 하나의 값을 생성하는 코드 조각이며, **연산자(Operator)**는 표현식 내에서 값과 변수를 조작하는 기호입니다. 모든 문장은 표현식으로 구성되며, 그 중 일부는 계산 값을 반환하고 일부는 동작만 수행합니다.

이 세미나에서는 표현식의 개념과 종류, 다양한 연산자의 구분과 사용법을 설명하고, 특히 기본 표현식, void 표현식, 배정(할당) 표현식을 중심으로 단계별로 설명합니다.


2. 기본 표현식 (Basic Expressions)

2.1 리터럴 표현식

42
"Hello"
true
  • 숫자, 문자열, 불리언 등의 고정값 표현

2.2 변수 표현식

int x = 5;
x // 변수 자체도 표현식

2.3 연산 표현식

int sum = 3 + 4; // +는 이항 산술 연산자

2.4 메서드 호출 표현식

Console.ReadLine();
Math.Max(3, 7);

2.5 객체 생성 표현식

new List<int>();
new Person();
  • 객체 생성도 표현식이며, 결과로 참조 값 반환

3. void 표현식 (Void Expressions)

  • void는 값을 반환하지 않는 메서드를 호출하는 표현식입니다.
  • 표현식이지만 사용할 수 있는 값이 없음
void SayHello() => Console.WriteLine("Hello");

SayHello(); // 표현식이지만 결과 값 없음
  • void 메서드를 다른 표현식처럼 연산에 사용할 수 없음:
int result = SayHello(); // 오류

4. 배정 표현식 (Assignment Expressions)

  • 값을 변수에 할당하는 연산도 표현식으로 간주됨
int a;
a = 10;        // 배정 표현식
int b = (a = 20); // 오른쪽 전체가 표현식으로 동작
  • 할당은 좌변 = 우변 구조로, 전체 결과는 우변 값 반환

4.1 복합 배정 연산자

x += 5; // x = x + 5
x *= 2; // x = x * 2
  • 산술, 비트, 논리 연산자와 함께 사용 가능 (+=, -=, *=, /=, &=, |=, ^=, <<=, >>= 등)

5. 연산자의 종류 요약

분류예시

산술 연산자 +, -, *, /, %
비교 연산자 ==, !=, <, >, <=, >=
논리 연산자 &&, `   , !`
비트 연산자 &, ` , ^, ~, <<, >>`
배정 연산자 =, +=, -=, ...
조건 연산자 ?:, ??, ??=
기타 is, as, typeof, sizeof, nameof, new, await

6. 결론

  • 표현식은 결과를 생성하는 코드 조각이며, 연산자는 그 표현식을 구성하는 핵심 도구입니다.
  • void 표현식은 값을 반환하지 않지만 호출 자체는 표현식으로 간주됩니다.
  • 배정 표현식은 변수에 값을 할당하면서 그 값을 반환하므로, 중첩 표현식 구성도 가능합니다.
  • 표현식의 구조를 이해하는 것은 람다, LINQ, 조건문 등의 심화 개념으로 가는 기본입니다.

7. Q&A

Q1. void 메서드는 표현식인가요?
A1. 네, void 반환 메서드 호출도 표현식이지만 값은 반환하지 않기 때문에 연산에는 사용할 수 없습니다.

Q2. 복합 할당 연산자도 표현식인가요?
A2. 네, 복합 할당 연산자도 표현식이며 결과 값을 반환합니다.

Q3. 표현식과 문(statement)은 다른가요?
A3. 표현식은 값을 반환하는 코드 조각이고, 문은 명령입니다. 대부분의 문은 표현식을 포함하지만 표현식 그 자체는 아닙니다.

Q4. 표현식 안에 표현식을 넣을 수 있나요?
A4. 네, 대부분의 표현식은 중첩 가능합니다. 예: int a = (x = 5) + 2;