BLCAN'S LAB

λ°˜μ‘ν˜•

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—λŠ” μˆ˜ν•™κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ λ‹€μ–‘ν•œ μ—°μ‚°μžλ“€μ΄ μ‘΄μž¬ν•œλ‹€.

이런 κΈ°λ³Έ μ—°μ‚°μžλ“€μ„ μΆ©λΆ„νžˆ 이해해야 μœ λ‹ˆν‹°λ₯Ό 톡해 κ²Œμž„μ„ κ°œλ°œν•˜κ±°λ‚˜ C#으둜 μ½”λ“œλ₯Ό 지 λ•Œ μ•Œ 맞게 μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  μœ λ‹ˆν‹°λ₯Ό 톡해 μ μ ˆν•œ κ²Œμž„ κ°œλ°œμ„ ν•  수 μžˆλ‹€.

 

μ—°μ‚°μž

ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©ν•˜λŠ” μ—°μ‚°μžλŠ” λŒ€ν‘œμ μœΌλ‘œ λ‹€μŒκ³Ό κ°™λ‹€.

 

1. μ‚°μˆ  μ—°μ‚°μž

2. λŒ€μž… μ—°μ‚°μž

3. 증감 μ—°μ‚°μž

4. 관계 μ—°μ‚°μž

5. 논리 μ—°μ‚°μž

6. λΉ„νŠΈ μ—°μ‚°μž

 


1. μ‚°μˆ  μ—°μ‚°μž

κ°€μž₯ ν”ν•˜κ²Œ μ‚¬μš©ν•˜λŠ” μ—°μ‚°μžλ‘œ μˆ˜ν•™μ—μ„œμ˜ 사칙연산과 거의 μœ μ‚¬ν•˜λ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œμ˜ 곱은 ×κ°€ μ•„λ‹Œ *을 μ‚¬μš©ν•˜λ©° λ‚˜λˆ„κΈ° λ˜ν•œ ÷κ°€ μ•„λ‹Œ /λ₯Ό μ‚¬μš©ν•œλ‹€. μ‚°μˆ  μ—°μ‚°μžμ—λŠ” κΈ°μ‘΄ 사칙 연산에 λ‚˜λ¨Έμ§€ μ—°μ‚°μž(%)κ°€ μΆ”κ°€λœλ‹€. λ‚˜λ¨Έμ§€ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄λ³Έ μ‚¬λžŒμ€ ν•΄λ‹Ή μ—°μ‚°μžμ˜ μœ μš©ν•¨μ„ 깊이 느끼고 μžˆμ„ 것이닀.

int num1 = 20;
int num2 = 10;

int sum = num1 + num2;  // 30 
int difference = num1 - num2;  // 10
int product = num1 * num2  // 200
int quotient = num1 / num2;  // 2 
int remainder = num % num2;  // 0

C#μ—μ„œλŠ” 데이터 ν˜•μ— 따라 ν‘œν˜„ν•  수 μžˆλŠ” 수의 크기가 μ •ν•΄μ Έ μžˆλ‹€. κ·Έλž˜μ„œ λΆ€ν˜Έ μ—†λŠ” ν˜•(unsignν˜•)의 경우 0 λ°‘μœΌλ‘œ λ‚΄λ €κ°€λ©΄ underflowκ°€ λ°œμƒν•œλ‹€. κ·Έλž˜μ„œ μ½”λ“œλ₯Ό 지 λ•Œ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ λ°μ΄ν„°ν˜•μ˜ 따라 underflow overflowκ°€ λ°œμƒν•  수 μžˆμŒμ„ μΈμ§€ν•˜κ³  μ½”λ“œλ₯Ό μ§œμ•Όν•œλ‹€.

 

 

2. λŒ€μž… μ—°μ‚°μž

λŒ€μž… μ—°μ‚°μžλŠ” =을 μ‚¬μš©ν•œλ‹€. μˆ˜ν•™μ—μ„œμ˜ =κ³ΌλŠ” μ•½κ°„μ˜ 차이가 μžˆλ‹€.

'= μ—°μ‚°μžμ˜ μ™Όμͺ½μ— μžˆλŠ” ν”Όμ—°μ‚°μžμ— μ—°μ‚°μžμ˜ 였λ₯Έμͺ½μ— μžˆλŠ” ν”Όμ—°μ‚°μžμ˜ 값을 λŒ€μž…ν•˜λŠ” μ—°μ‚°μž'이닀.

μ½”λ“œλ‘œ 확인 해보면

string container = "data";

dataλΌλŠ” λ¬Έμžμ—΄μ„ container에 λŒ€μž…ν•œλ‹€. 즉,  =을 κΈ°μ€€μœΌλ‘œ 였λ₯Έμͺ½μ— μžˆλŠ” 정보λ₯Ό μ™Όμͺ½μ— μžˆλŠ” ν”Όμ—°μ‚°μžμ— λŒ€μž…ν•˜λŠ” 것이닀.

 

λŒ€μž… μ—°μ‚°μžλŠ” 일뢀 λ‹€λ₯Έ μ—°μ‚°μžμ™€ 쑰합이 κ°€λŠ₯ν•˜λ‹€.

이λ₯Ό 볡합 λŒ€μž… μ—°μ‚°μžλΌκ³  ν•˜λ©° λΉ„νŠΈ μ—°μ‚°μžλ„ 쑰합이 κ°€λŠ₯ν•˜λ‹€.

int num;

int num += 10; // num = num + 10κ³Ό 같은 의미
int num -= 10; // num = num - 10κ³Ό 같은 의미
int num *= 10; // num = num * 10κ³Ό 같은 의미
int num /= 10; // num = num / 10κ³Ό 같은 의미

num += 10은 num에 10을 λ”ν•œ ν›„ λ‹€μ‹œ num에 λŒ€μž…ν•˜λΌλŠ” λœ»μ΄λ‹€. μœ„ μ½”λ“œμ—μ„œ 처럼 num = num + 10κ³Ό 같은 의미λ₯Ό κ°–μ§€λ§Œ num += 10이 μ½”λ“œλ₯Ό 덜 μΉ˜λ‹ˆ μ‚¬μš©ν•  λ•Œ νŽΈν•˜λ‹€. (λΈ”λ‘œκ·Έμ—μ„œ λ§€λ„λŸ¬μš΄ 좜λ ₯을 μœ„ν•΄ intλ₯Ό λ„£μ—ˆμŒ)

3. 증감 μ—°μ‚°μž

3.1 ++μ—°μ‚°μž

 

++μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μž ν•˜λ‚˜μ˜ 값을 1만큼 μ¦κ°€μ‹œν‚€λŠ” μ—°μ‚°μžμ΄λ‹€.

int num = 10;
++num; // 11

++λ₯Ό μ•žμ— 뢙이면 μ „μœ„ 증가 μ—°μ‚°, ++λ₯Ό 뒀에 뢙이면 ν›„μœ„ 증가 연산이라 ν•œλ‹€. λ‘˜μ˜ 차이λ₯Ό μ‰¬κ²Œ μ„€λͺ…ν•˜λ©΄ μ „μœ„ 연산은 λ¨Όμ € 1 μ¦κ°€μ‹œν‚¨ ν›„ λŒ€μž…ν•˜λŠ” 것이고 ν›„μœ„ 연산은 λŒ€μž… ν›„ 1 μ¦κ°€μ‹œν‚€λŠ” 것이닀.

μ „μœ„ 증가 μ—°μ‚°μž

ν›„μœ„ 증가 μ—°μ‚°μž

int num = 10;

int result1 = ++num; // 11

int result2 = num // 11

int num = 10;

int result1 = num++; // 10

int result2 = num // 11

int num = 10;

num = num +1;

int result1 = num;

int result2 = num;

int num = 10;

int result1 = num;

num = num +1;

int result2 = num;

숫자 ν•˜λ‚˜λ§Œ μ¦κ°€μ‹œν‚€λŠ” 것은 ν•˜λ“œμ›¨μ–΄μ—μ„œ 숫자 ν•˜λ‚˜λ§Œ μ¦κ°€μ‹œν‚€λŠ” λͺ…λ Ήμ–΄κ°€ λ”°λ‘œ μžˆλ‹€. (증감 μ—°μ‚¬μžκ°€ 숫자λ₯Ό λ”ν•΄μ£ΌλŠ” 것보닀 더 빠름!)

 

3.2 --μ—°μ‚°μž

 

--μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μž ν•˜λ‚˜μ˜ 값을 1만큼 κ°μ†Œμ‹œν‚€λŠ” μ—°μ‚°μžμ΄λ‹€.

int num = 10;
--num; // 9

--μ—°μ‚°μžλ„ ++μ—°μ‚°μžμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μ „μœ„ κ°μ†Œ μ—°μ‚°, ν›„μœ„ κ°μ†Œ 연산이 μ‘΄μž¬ν•œλ‹€. 이 λ‘˜μ˜ μ°¨μ΄λŠ” 면접관듀이 μ’…μ’… λ©΄μ ‘ λ¬Έμ œλ‘œλ„ ν™œμš©ν•˜λ‹ˆ μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λ©΄ 쒋을 것이닀.

int num1 = 0;
int num2 = 10;
int result1 = num1++ + num2;  // 10

int num3 = 0;
int num4 = 10;
int result2 = ++num3 + num4++;  // 11

int num5 = 0;
int num6 = 10;
int result3 = num5-- + num5-- - --num6;  // -10

 

4. 관계 μ—°μ‚°μž 5. 논리 μ—°μ‚°μž 6. λΉ„νŠΈ μ—°μ‚°μžλŠ” λ‹€μŒ ν¬μŠ€νŠΈμ—μ„œ 확인

[C#] ν”„λ‘œκ·Έλž˜λ° μ—°μ‚°μžλ₯Ό ν™•μΈν•˜μž(2) ν”„λ‘œκ·Έλž˜λ° μŠ€ν‚¬ UP

 

[C#] ν”„λ‘œκ·Έλž˜λ° μ—°μ‚°μžλ₯Ό ν™•μΈν•˜μž(2) ν”„λ‘œκ·Έλž˜λ° μŠ€ν‚¬ UP

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—λŠ” μˆ˜ν•™κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ λ‹€μ–‘ν•œ μ—°μ‚°μžλ“€μ΄ μ‘΄μž¬ν•œλ‹€. 이런 κΈ°λ³Έ μ—°μ‚°μžλ“€μ„ μΆ©λΆ„νžˆ 이해해야 μœ λ‹ˆν‹°λ₯Ό 톡해 κ²Œμž„μ„ κ°œλ°œν•˜κ±°λ‚˜ C#으둜 μ½”λ“œλ₯Ό 지 λ•Œ μ•Œ 맞게 μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  οΏ½

blcan.tistory.com

λ°˜μ‘ν˜•