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# 세미나 자료: 산술 연산자 (Arithmetic Operators) 본문

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

C# 세미나 자료: 산술 연산자 (Arithmetic Operators)

DevGourmet 2025. 4. 7. 12:32

1. 개요

C#에서 산술 연산자는 수학적인 계산을 수행하는 데 사용되는 가장 기본적인 연산자입니다. 변수 간의 더하기, 빼기, 곱하기, 나누기, 나머지 연산을 수행할 수 있으며, 실무 코드와 알고리즘 구현에서도 매우 빈번하게 사용됩니다. 본 세미나에서는 산술 연산자의 종류와 특징, 우선순위, 예외 상황, 실수 처리 등을 초급부터 고급까지 단계적으로 설명합니다.


2. 기본 이론

2.1 산술 연산자의 종류

연산자의미예시설명

+ 덧셈 a + b a와 b를 더함
- 뺄셈 a - b a에서 b를 뺌
* 곱셈 a * b a와 b를 곱함
/ 나눗셈 a / b a를 b로 나눔
% 나머지 a % b a를 b로 나눈 나머지

2.2 연산자 우선순위

연산자에는 실행 우선순위가 있으며 괄호를 사용해 우선순위를 명확히 할 수 있습니다.

int result1 = 10 + 2 * 3;     // 결과: 16
int result2 = (10 + 2) * 3;   // 결과: 36

2.3 정수 vs 실수 연산

정수 연산과 실수 연산의 결과는 다를 수 있으며, 나눗셈 결과는 정수형일 경우 소수점 이하가 버려집니다.

int a = 7, b = 2;
Console.WriteLine(a / b);    // 출력: 3

float x = 7f, y = 2f;
Console.WriteLine(x / y);    // 출력: 3.5

3. 단계별 설명

3.1 초급: 기본 사용법 익히기

int a = 10, b = 4;
Console.WriteLine(a + b);  // 14
Console.WriteLine(a - b);  // 6
Console.WriteLine(a * b);  // 40
Console.WriteLine(a / b);  // 2
Console.WriteLine(a % b);  // 2

3.2 중급: 실수 계산과 괄호의 활용

double d1 = 10.0, d2 = 3.0;
Console.WriteLine(d1 / d2);      // 3.333...
Console.WriteLine(d1 % d2);      // 1.0

int result = (2 + 3) * 4;         // 괄호 우선 적용: 20

3.3 고급: Math 클래스와 특수 케이스

C#에서는 Math 클래스를 활용해 다양한 고급 산술 연산을 수행할 수 있습니다.

Console.WriteLine(Math.Pow(2, 5));    // 32
Console.WriteLine(Math.Sqrt(16));     // 4
Console.WriteLine(Math.Abs(-10));     // 10
  • 거듭제곱, 제곱근, 절댓값 등의 고급 수치 연산 처리 가능
  • 음수의 나머지 연산은 언어마다 처리 방식이 다를 수 있으므로 주의
Console.WriteLine(-7 % 3); // -1 (C#에서는 피제수의 부호 유지)

4. 주의사항 및 팁

  • 정수를 0으로 나누면 런타임 예외가 발생합니다:
int a = 5, b = 0;
// Console.WriteLine(a / b); // DivideByZeroException
  • 실수를 0으로 나누면 Infinity 또는 NaN이 반환될 수 있습니다:
double d = 10.0, zero = 0.0;
Console.WriteLine(d / zero); // 출력: Infinity
  • 피연산자의 자료형이 다르면 자동 형 변환이 발생할 수 있습니다:
int i = 5;
double d = 2.0;
Console.WriteLine(i / d); // 출력: 2.5 (int -> double 형 변환)

5. 결론

  • 산술 연산자는 C#의 기초적인 연산 도구이며 모든 계산의 출발점입니다.
  • 정수와 실수 연산의 차이를 이해하고, 괄호를 활용해 의도한 결과를 명확히 해야 합니다.
  • Math 클래스를 통해 다양한 고급 연산이 가능하며, 예외 상황(0으로 나누기 등)에도 대비해야 합니다.

6. Q&A

Q1. 산술 연산자에서 가장 높은 우선순위를 가진 것은 무엇인가요?
A1. 곱셈(*), 나눗셈(/), 나머지(%)가 더하기(+), 빼기(-)보다 우선합니다.

Q2. 0으로 나누면 어떤 일이 발생하나요?
A2. 정수 연산에서는 런타임 예외가 발생하고, 실수 연산에서는 Infinity 또는 NaN이 반환됩니다.

Q3. 실수형 나눗셈 결과를 정수로 변환하려면 어떻게 하나요?
A3. int result = (int)(a / b); 와 같이 명시적 형 변환을 사용해야 합니다.

Q4. 산술 연산에 사용되는 자료형이 서로 다를 경우 어떻게 처리되나요?
A4. 정수형보다 큰 실수형으로 자동 형 변환이 일어나고, 연산 결과는 더 큰 타입으로 결정됩니다.

감사합니다!