[JAVA] 4. μ—°μ‚°μžoperator

2022. 4. 4. 22:07ㆍJAVA/μžλ°”μ˜ 정석

728x90

 

1️⃣ μ—°μ‚°μž

μ—°μ‚°μžλŠ” '연산을 μˆ˜ν–‰ν•˜λŠ” 기호'λ₯Ό λ§ν•œλ‹€. 

μ—°μ‚°μž: 연산을 μˆ˜ν–‰ν•˜λŠ” 기호 +, -, /, % 
ν”Όμ—°μ‚°μž: μ—°μ‚°μžμ˜ μž‘μ—… λŒ€μƒ(λ³€μˆ˜, λ¦¬ν„°λŸ΄, μƒμˆ˜, μˆ˜μ‹)

μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μžλ‘œ 연산을 μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ 항상 결과값을 λ°˜ν™˜ν•œλ‹€.

-> λ°˜λŒ€λ‘œ λ§ν•˜λ©΄ 결과값을 λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μ—°μ‚°μžκ°€ μ•„λ‹ˆλ‹€.(κ·Έλž˜μ„œ κ΄„ν˜Έκ°€ μ—°μ‚°μžκ°€ μ•„λ‹˜) 

 

 

2️⃣ μ—°μ‚°μžμ˜ μ’…λ₯˜

μ‚°μˆ μ—°μ‚°μž: +, -, *, /, %, <<, >>
λΉ„κ΅μ—°μ‚°μž: <, >, <=, >=, ==, != 
λ…Όλ¦¬μ—°μ‚°μž: &&, ||, !
λŒ€μž…μ—°μ‚°μž: = 

 

3️⃣ μ—°μ‚°μžμ˜ μš°μ„ μˆœμœ„μ™€ κ²°ν•©κ·œμΉ™ 

식에 μ‚¬μš©λœ μ—°μ‚°μžκ°€ λ‘˜ 이상인 경우, μ—°μ‚°μžμ˜ μš°μ„ μˆœμœ„μ— μ˜ν•΄μ„œ μ—°μ‚°μˆœμ„œκ°€ κ²°μ •λœλ‹€. 

ν•˜λ‚˜μ˜ 식에 같은 μš°μ„ μˆœμœ„μ˜ μ—°μ‚°μžλ“€μ΄ μ—¬λŸ¬κ°œ μžˆλŠ” 경우, μ—°μ‚°μžμ˜ κ²°ν•©κ·œμΉ™μ— μ˜ν•΄ μ²˜λ¦¬ν•œλ‹€. 

 

μ—°μ‚°μžμ˜ κ²°ν•©κ·œμΉ™μ€ μ—°μ‚°μžλ§ˆλ‹€ λ‹€λ₯΄μ§€λ§Œ, λŒ€λΆ€λΆ„ μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μ˜ μˆœμ„œλ‘œ 연산을 μˆ˜ν–‰ν•œλ‹€. 

근데 λ‹¨ν•­μ—°μ‚°μžλ‚˜ λŒ€μž… μ—°μ‚°μžλ§Œ λ°˜λŒ€λ‘œ 였λ₯Έμͺ½μ—μ„œ μ™Όμͺ½μ˜ μˆœμ„œλ‘œ 연산을 μˆ˜ν–‰ν•œλ‹€. 

 

μ—°μ‚°μž μš°μ„ μˆœμœ„ 

- μ‚°μˆ  > 비ꡐ > 논리 > λŒ€μž…. λŒ€μž…μ€ 제일 λ§ˆμ§€λ§‰μ— μˆ˜ν–‰λœλ‹€.
- 단항(1) > 이항(2) > μ‚Όν•­(3). 단항 μ—°μ‚°μžμ˜ μš°μ„ μˆœμœ„λŠ” μ΄ν•­μ—°μ‚°μžλ³΄λ‹€ λ†’λ‹€.
- 단항 μ—°μ‚°μžμ™€ λŒ€μž… μ—°μ‚°μžλ₯Ό μ œμ™Έν•œ λͺ¨λ“  μ—°μ‚°μ˜ 진행방ν–₯은 μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μ΄λ‹€. 

 

4️⃣ μ‚°μˆ  λ³€ν™˜ 

이항 μ—°μ‚°μžλŠ” 두 ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ΄ μΌμΉ˜ν•΄μ•Ό 연산이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ΄ μ„œλ‘œ λ‹€λ₯΄λ‹€λ©΄ μ—°μ‚° 전에 ν˜•λ³€ν™˜ μ—°μ‚°μžλ‘œ νƒ€μž…μ„ μΌμΉ˜μ‹œμΌœμ•Όν•œλ‹€. 

 

λŒ€λΆ€λΆ„μ˜ κ²½μš°μ—λŠ” 두 ν”Όμ—°μ‚°μžμ˜ νƒ€μž… μ€‘μ—μ„œ 더 큰 νƒ€μž…μœΌλ‘œ μΌμΉ˜μ‹œν‚€λŠ”λ°, κ·Έ μ΄μœ λŠ” μž‘μ€ νƒ€μž…μœΌλ‘œ ν˜•λ³€ν™˜ν•˜λ©΄ μ›λž˜μ˜ 값이 손싀될 κ°€λŠ₯성이 있기 λ•Œλ¬Έμ΄λ‹€. 

 

μ‚°μˆ λ³€ν™˜: μ—°μ‚° μˆ˜ν–‰ 직전에 λ°œμƒν•˜λŠ” ν”Όμ—°μ‚°μžμ˜ μžλ™ ν˜•λ³€ν™˜ 
- 두 ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ„ κ°™κ²Œ μΌμΉ˜μ‹œν‚¨λ‹€.(보닀 큰 νƒ€μž…μœΌλ‘œ 일치)
- ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ΄ int보닀 μž‘μ€ νƒ€μž…μ΄λ©΄ int둜 λ³€ν™˜λœλ‹€. 

charλ‚˜ short의 ν‘œν˜„λ²”μœ„λŠ” 쒁기 λ•Œλ¬Έμ— 연산쀑에 μ˜€λ²„ν”Œλ‘œμš°κ°€ λ°œμƒν•  κ°€λŠ₯성이 λ†’κΈ° λ•Œλ¬Έμ— int둜 λ³€ν™˜ν•΄μ„œ μ—°μ‚°ν•œλ‹€. 

 

 

5️⃣ λ‹¨ν•­μ—°μ‚°μž

μ¦κ°μ—°μ‚°μž ++, -- 

μ¦κ°€μ—°μ‚°μž ++  ν”Όμ—°μ‚°μžμ˜ 값을 1μ¦κ°€μ‹œν‚¨λ‹€.

κ°μ†Œμ—°μ‚°μž --    ν”Όμ—°μ‚°μžμ˜ 값을 1κ°μ†Œμ‹œν‚¨λ‹€. 

 

μ „μœ„ν˜• j = ++i; 값이 참쑰되기 전에 μ¦κ°€μ‹œν‚¨λ‹€.

ν›„μœ„ν˜• j = i++;  값이 참쑰된 후에 μ¦κ°€μ‹œν‚¨λ‹€. 

 

μ „μœ„ν˜•κ³Ό ν›„μœ„ν˜•μ€ λͺ¨λ‘ ν”Όμ—°μ‚°μžμ˜ 값을 1증가 λ˜λŠ” κ°μ†Œμ‹œν‚€μ§€λ§Œ μ¦κ°μ—°μ‚°μžμ˜ μˆ˜μ‹μ΄λ‚˜ λ©”μ„œλ“œ ν˜ΈμΆœμ— ν¬ν•¨λœ 경우 μ „μœ„ν˜•μΌλ•Œμ™€ ν›„μœ„ν˜•μΌλ•Œμ˜ κ²°κ³Όκ°€ λ‹€λ₯΄λ‹€. 

근데 μ¦κ°μ—°μ‚°μžκ°€ μˆ˜μ‹μ΄λ‚˜ λ©”μ„œλ“œ ν˜ΈμΆœμ— ν¬ν•¨λ˜μ§€ μ•Šκ³  독립적인 ν•˜λ‚˜μ˜ λ¬Έμž₯으둜 쓰인 κ²½μš°μ—λŠ” μ „μœ„ν˜•κ³Ό ν›„μœ„ν˜•μ˜ 차이가 μ—†λ‹€. 

 

j = ++i; 

-> ++i; 증가후에 

    j = i; μ°Έμ‘°ν•˜μ—¬ λŒ€μž… 

 

j = i++;

-> j = i;  μ°Έμ‘°ν•˜μ—¬ λŒ€μž…ν›„μ— 

    i++;   μ¦κ°€ 

 

 

6️⃣ μ‚°μˆ μ—°μ‚°μž 

 

μ‚¬μΉ™μ—°μ‚°μž +, -, /, % 

ν”Όμ—°μ‚°μžκ°€ μ •μˆ˜ν˜•μΈ 경우, λ‚˜λˆ„λŠ” 수둜 0을 μ‚¬μš©ν•˜λ©΄ μ•ˆλœλ‹€! μ‹€ν–‰μ‹œμ— μ—λŸ¬λ‚¨ 

근데 μ—¬κΈ°μ„œλŠ” μ›ν•˜λŠ” 값이 좜λ ₯λ˜μ§€ μ•Šκ³  μ˜€λ²„ν”Œλ‘œμš°κ°€ λ°œμƒν•œλ‹€. 

μ™œλƒν•˜λ©΄ int * intλŠ” κ²°κ³Όκ°€ int이기 λ•Œλ¬Έμ΄λ‹€. 

κ·Έλž˜μ„œ longν˜•μœΌλ‘œ μžλ™ν˜•λ³€ν™˜λœλ‹€κ³  해도 값이 λ³€ν•˜μ§€μ•ŠλŠ”λ‹€. 

-> 라고 μ±…μ—λŠ” λ‚˜μ™”λŠ”λ° λŒλ €λ³΄λ‹ˆκΉŒ μ›ν•˜λŠ” 값이 잘 λ‚˜μ˜¨λ‹€;; 바뀐건가 

μ•„λ¬΄νŠΌ μ›λž˜λŠ” 

μ΄λ ‡κ²Œ ν˜•λ³€ν™˜μ„ ν•œμͺ½μ΄λΌλ„ ν•΄μ€˜μ•Ό long κ°’μœΌλ‘œ λ³€ν™˜λ˜μ„œ μ˜€λ²„ν”Œλ‘œμš°κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€κ³  ν•œλ‹€. 

 

 

7️⃣ Math.round() 

Math.round()λŠ” λ§€κ°œλ³€μˆ˜λ‘œ 받은 값을 μ†Œμˆ˜μ  μ²«μ§Έμžλ¦¬μ—μ„œ λ°˜μ˜¬λ¦Όν•˜κ³  κ·Έ μ •μˆ˜λ₯Ό λŒλ €μ£ΌλŠ” λ©”μ„œλ“œμ΄λ‹€. 

κ²°κ³Όκ°’μœΌλ‘œ 3.142κ°€ 좜λ ₯λœλ‹€. 

 

 

8️⃣ λ‚˜λ¨Έμ§€ μ—°μ‚°μž %

λ‚˜λ¨Έμ§€ μ—°μ‚°μžλŠ” μ™Όμͺ½μ˜ ν”Όμ—°μ‚°μžλ₯Ό 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžλ‘œ λ‚˜λˆ„κ³  λ‚œ λ‚˜λ¨Έμ§€ 값을 결과둜 λ°˜ν™˜ν•˜λŠ” μ—°μ‚°μžμ΄λ‹€. 

λ‚˜λˆ„λŠ” 수둜 0을 μ‚¬μš©ν•  수 μ—†λ‹€λŠ” 점은 μ£Όμ˜ν•˜μž!

 

 

9️⃣ λΉ„κ΅μ—°μ‚°μž 

 

λŒ€μ†ŒλΉ„κ΅ μ—°μ‚°μž >, <, >=, <=

두 ν”Όμ—°μ‚°μžμ˜ κ°’μ˜ 크기λ₯Ό λΉ„κ΅ν•˜λŠ” μ—°μ‚°μžλ‘œ 참이면 true, 거짓이면 false κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€. 

 

등가비ꡐ μ—°μ‚°μž == != 

두 ν”Όμ—°μ‚°μžμ˜ 값이 같은지 λ˜λŠ” λ‹€λ₯Έμ§€λ₯Ό λΉ„κ΅ν•˜λŠ” μ—°μ‚°μžμ΄λ‹€. 

-> floatνƒ€μž…κ³Ό double νƒ€μž… λΉ„κ΅ν•˜κΈ° μœ„ν•΄μ„œλŠ” double νƒ€μž…μ˜ 값을 float νƒ€μž…μœΌλ‘œ ν˜•λ³€ν™˜ν•œ λ‹€μŒμ— λΉ„κ΅ν•΄μ•Όν•œλ‹€.

 

λ¬Έμžμ—΄λΉ„κ΅ equals()

두 λ¬Έμžμ—΄μ„ 비ꡐ할 λ•ŒλŠ”, λΉ„κ΅μ—°μ‚°μž == λŒ€μ‹  equals()λΌλŠ” λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€. 

λ¬Έμžμ—΄μ˜ λ‚΄μš©μ΄ 같은지λ₯Ό λΉ„κ΅ν•˜κΈ° μœ„ν•΄μ„œλŠ” equals()λ₯Ό μ‚¬μš©ν•˜λŠ” 것이닀.

equals()λŠ” λΉ„κ΅ν•˜λŠ” 두 λ¬Έμžμ—΄μ΄ κ°™μœΌλ©΄ true, λ‹€λ₯΄λ©΄ falseλ₯Ό λ°˜ν™˜ν•œλ‹€. 

(만일 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λ³„ν•˜μ§€ μ•Šκ³  λΉ„κ΅ν•˜κ³  μ‹Άλ‹€λ©΄ equalsIgnoreCase()λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.)

 

 

 

728x90

'JAVA > μžλ°”μ˜ 정석' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] 7. 반볡문  (0) 2022.04.06
[JAVA] 6. 쑰건문  (0) 2022.04.05
[JAVA] 3. 진법  (0) 2022.04.01
[JAVA] 2. λ³€μˆ˜ (Variable)  (0) 2022.03.31
[JAVA] 1. μžλ°”  (0) 2022.03.30