3. ์๋ฐ์ ์ฌ๋ฌ ๊ฐ์ง ์ฐ์ฐ์
// ์ผ์ชฝ ๋ณ์ = ์ค๋ฅธ์ชฝ ๋ณ์(๋๋ ์)
int age = 24;
๊ธฐ๋ณธ ์ฐ์ฐ์
์ฐ์ฐ์(operator): ์ฐ์ฐ์ ์ฌ์ฉํ๋ ๊ธฐํธ
ํญ(operand): ์ฐ์ฐ์ ์ฌ์ฉํ๋ ๊ฐ
| ์ฐ์ฐ์ | ์ค๋ช | ์ฐ์ฐ ์ |
| ๋จํญ ์ฐ์ฐ์ | ํญ์ด ํ ๊ฐ์ธ ์ฐ์ฐ์ | ++num |
| ์ดํญ ์ฐ์ฐ์ | ํญ์ด ๋ ๊ฐ์ธ ์ฐ์ฐ์ | num1 + num2; |
| ์ผํญ ์ฐ์ฐ์ | ํญ์ด ์ธ ๊ฐ์ธ ์ฐ์ฐ์ | (5>3) ? 1:0; |
๋์ ์ฐ์ฐ์
๋ณ์์ ๊ฐ์ ๋์ ํ๋ ์ฐ์ฐ์๋ก, ์ดํญ ์ฐ์ฐ์ ์ค ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ฐ์
// ์ผ์ชฝ ๋ณ์ = ์ค๋ฅธ์ชฝ ๋ณ์(๋๋ ์)
int age = 24; // ๋์ด๋ฅผ ์๋ฏธํ๋ age ๋ณ์์ ๊ฐ 24๋ฅผ ๋์
totalScore = mathScore + engScore;
๋ถํธ ์ฐ์ฐ์
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| + | ๋ณ์๋ ์์ ๊ฐ์ ์์๋ก ๋ง๋ฆ | +3 |
| - | ๋ณ์๋ ์์ ๊ฐ์ ์์๋ก ๋ง๋ฆ | -3 |
int num = 10;
System.out.println(+num); // ๊ฐ 10์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋จ
System.out.println(-num); // ๊ฐ 10์ -๊ฐ ๋ถ์ด์ -10์ผ๋ก ์ถ๋ ฅ๋์ง๋ง, num ๊ฐ์ด ์ค์ ๋ก ๋ฐ๋์ง๋ ์์
System.out.println(num); // ๊ฐ 10์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋จ
num = -num; // num ๊ฐ์ ์์๋ก ๋ฐ๊ฟ์ ๋ค์ num์ ๋์
ํจ
System.out.println(num); // -10 ์ถ๋ ฅ
์ฐ์ ์ฐ์ฐ์
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| + | ๋ ํญ์ ๋ํจ | 5+3 |
| - | ์์ ์๋ ํญ์์ ๋ค์ ์๋ ํญ ๋นผ๊ธฐ | 5-3 |
| * | ๋ ํญ์ ๊ณฑํจ | 5*3 |
| / | ์์ ์๋ ํญ์์ ๋ค์ ์๋ ํญ์ ๋๋์ด ๋ชซ์ ๊ตฌํจ | 5/3 |
| % | ์์ ์๋ ํญ์์ ๋ค์ ์๋ ํญ์ ๋๋์ด ๋๋จธ์ง๋ฅผ ๊ตฌํจ | 5%3 |
์ฆ๊ฐ/๊ฐ์ ์ฐ์ฐ์
์ฆ๊ฐ์ฐ์ฐ์๋ ๋จํญ ์ฐ์ฐ์๋ก, ์ฐ์ฐ์ ์์ด๋ ๋ค์ ์ฌ์ฉํ๋ฉฐ ๊ฐ์ 1๋งํผ ๋๋ฆฌ๊ฑฐ๋ 1๋งํผ ์ค์
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| ++ | ํญ์ ๊ฐ์ 1์ ๋ํจ | val = ++num; // ๋จผ์ num ๊ฐ์ด 1 ์ฆ๊ฐํ ํ val ๋ณ์์ ๋์
val = num++; // val ๋ณ์์ ๊ธฐ์กด num ๊ฐ์ ๋จผ์ ๋์ ํ ํ num ๊ฐ 1 ์ฆ๊ฐ |
| -- | ํญ์ ๊ฐ์์ 1์ ๋บ | val = --num; // ๋จผ์ num ๊ฐ์ด 1 ๊ฐ์ํ ํ val ๋ณ์์ ๋์
val = num--; // val ๋ณ์์ ๊ธฐ์กด num ๊ฐ์ ๋จผ์ ๋์ ํ ํ num ๊ฐ 1 ๊ฐ์ |
๊ด๊ณ ์ฐ์ฐ์
๊ด๊ณ ์ฐ์ฐ์์ ๊ฒฐ๊ณผ ๊ฐ์ ์ฐธ(true) ๋๋ ๊ฑฐ์ง(false)๋ก ๋ฐํ๋จ
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| > | ์ผ์ชฝ ํญ์ด ํฌ๋ฉด ์ฐธ์, ์๋๋ฉด ๊ฑฐ์ง์ ๋ฐํ | num > 3; |
| < | ์ผ์ชฝ ํญ์ด ์์ผ๋ฉด ์ฐธ, ์๋๋ฉด ๊ฑฐ์ง์ ๋ฐํ | num < 3; |
| >= | ์ผ์ชฝ ํญ์ด ์ค๋ฅธ์ชฝ ํญ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ, ์๋๋ฉด ๊ฑฐ์ง์ ๋ฐํ | num >= 3; |
| <= | ์ผ์ชฝ ํญ์ด ์ค๋ฅธ์ชฝ ํญ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ, ์๋๋ฉด ๊ฑฐ์ง์ ๋ฐํ | num <= 3; |
| == | ๋ ๊ฐ ํญ์ ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฐธ, ์๋๋ฉด ๊ฑฐ์ง์ ๋ฐํ | num == 3; |
| != | ๋ ๊ฐ ํญ์ด ๋ค๋ฅด๋ฉด ์ฐธ, ์๋๋ฉด ๊ฑฐ์ง์ ๋ฐํ | num != 3; |
๋ ผ๋ฆฌ ์ฐ์ฐ์
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| &&(๋ ผ๋ฆฌ ๊ณฑ) | ๋ ํญ์ด ๋ชจ๋ ์ฐธ์ธ ๊ฒฝ์ฐ์๋ง ๊ฒฐ๊ณผ ๊ฐ์ด ์ฐธ์. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ฑฐ์ง | boolean val = (5>3) && (5>2); |
| || (๋ ผ๋ฆฌ ํฉ) | ๋ ํญ ์ค ํ๋์ ํญ๋ง ์ฐธ์ด๋ฉด ๊ฒฐ๊ณผ ๊ฐ์ ์ฐธ, ๋ ํญ์ด ๋ชจ๋ ๊ฑฐ์ง์ด๋ฉด ๊ฒฐ๊ณผ ๊ฐ์ ๊ฑฐ์ง | boolean val = (5>3) || (5>2); |
| ! (๋ถ์ ) | ๋จํญ ์ฐ์ฐ์๋ก, ์ฐธ์ธ ๊ฒฝ์ฐ๋ ๊ฑฐ์ง์ผ๋ก ๋ฐ๊พธ๊ณ , ๊ฑฐ์ง์ธ ๊ฒฝ์ฐ ์ฐธ์ผ๋ก ๋ฐ๊ฟ | boolean val = !(5>3); |
๋ ผ๋ฆฌ ์ฐ์ฐ์์ ๋ชจ๋ ํญ์ด ์คํ๋์ง ์๋ ๊ฒฝ์ฐ → ๋จ๋ฝ ํ๋ก ํ๊ฐ
package unit;
public class Unit01 {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value = ((num1 = num1+10) < 10) && ((i=i+2)<10);
// ((num1 = num+10) < 10)์ ๊ฒฐ๊ณผ ๊ฐ์ด ๊ฑฐ์ง์ด๋ฏ๋ก
// ๋ค์ ์๋ ((i=i+2)<10)์ ์คํ X
System.out.println(value); // false
System.out.println(num1); // 20
System.out.println(i); // 2
value = ((num1 = num1+10) > 10) || ((i=i+2)<10);
// ((num1 = num+10) < 10)์ ๊ฒฐ๊ณผ ๊ฐ์ด ์ด๋ฏ๋ก
// ๋ค์ ์๋ ((i=i+2)<10)์ ์คํ X
System.out.println(value); // true
System.out.println(num1); // 30
System.out.println(i); //2
}
}
์์ ์์์ฒ๋ผ ๋ ผ๋ฆฌ ๊ณฑ ์ฐ์ฐ๊ณผ ๋ ผ๋ฆฌ ํฉ ์ฐ์ฐ์ ํ ๋ ๋ ํญ์ ๋ชจ๋ ์คํํ์ง ์๋๋ผ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ ์ ์๋ ๊ฒฝ์ฐ์, ๋๋จธ์ง ํญ์ ์คํ๋์ง ์๋ '๋จ๋ฝ ํ๋ก ํ๊ฐ'๊ฐ ์ด๋ฃจ์ด์ง
๋ณตํฉ ๋์ ์ฐ์ฐ์
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| += | ๋ ํญ์ ๊ฐ์ ๋ํด์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 += 2; num1 = num1 + 2;์ ๊ฐ์ |
| -= | ์ผ์ชฝ ํญ์์ ์ค๋ฅธ์ชฝ ํญ์ ๋บด์ ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 -= 2; num1 = num1 - 2;์ ๊ฐ์ |
| *= | ๋ ํญ์ ๊ฐ์ ๊ณฑํด์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 *= 2; num1 = num1 * 2;์ ๊ฐ์ |
| /= | ์ผ์ชฝ ํญ์ ์ค๋ฅธ์ชฝ ํญ์ผ๋ก ๋๋์ด ๊ทธ ๋ชซ์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 /= 2; num1 = num1 / 2;์ ๊ฐ์ |
| %= | ์ผ์ชฝ ํญ์ ์ค๋ฅธ์ชฝ ํญ์ผ๋ก ๋๋์ด ๊ทธ ๋๋จธ์ง๋ฅผ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 %= 2; num1 = num1 % 2;์ ๊ฐ์ |
| <<= | ๋นํธ๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๊ณ , ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 <<= 2; num1 = num1 << 2;์ ๊ฐ์ |
| >>= | ๋นํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๊ณ , ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ(์ผ์ชฝ์ ์ฑ์์ง๋ ๋นํธ ๊ฐ์ ๋ถํธ ๋นํธ์ ๋์ผ) | num1 >>= 2; num1 = num1 >> 2;์ ๊ฐ์ |
| >>>= | ๋นํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๊ณ , ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ(์ผ์ชฝ์ ์ฑ์์ง๋ ๋นํธ ๊ฐ์ 0์) | num1 >>>= 2; num1 = num1 >>> 2;์ ๊ฐ์ |
| &= | ๋ ํญ์ & ๋นํธ ์ฐ์ฐ ํ ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 &= num2; num1 = num1 & num2;์ ๊ฐ์ |
| |= | ๋ ํญ์ | ๋นํธ ์ฐ์ฐ ํ ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 |= num2; num1 = num1 | num2;์ ๊ฐ์ |
| ^= | ๋ ํญ์ ^ ๋นํธ ์ฐ์ฐ ํ ๊ทธ ๊ฐ์ ์ผ์ชฝ ํญ์ ๋์ ํจ | num1 ^= num2; num1 = num1 ^ num2;์ ๊ฐ์ |
์กฐ๊ฑด ์ฐ์ฐ์
| ์ฐ์ฐ์ | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| ์กฐ๊ฑด์ ? ๊ฒฐ๊ณผ1 : ๊ฒฐ๊ณผ 2 | ์กฐ๊ฑด์์ด ์ฐธ์ด๋ฉด ๊ฒฐ๊ณผ 1, ์กฐ๊ฑด์์ด ๊ฑฐ์ง์ด๋ฉด ๊ฒฐ๊ณผ2๊ฐ ์ ํ๋จ | int num = (5>3) ? 10 : 20; |
๋นํธ ์ฐ์ฐ์
๋นํธ ๋จ์๋ก ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๋ ์ฐ์ฐ์๋ก, ๋นํธ ๋จ์์ ์ฐ์ฐ์ ํ๋ ๊ฒฝ์ฐ๋ '์ํธํ' ์์ ์ฒ๋ผ ์์์ ์ซ์๋ฅผ ๋ง๋ค๊ฑฐ๋, ์ด๋ค ๋ณ์์ ํน์ ๋นํธ๋ฅผ ๊บผ๋ด๋ณด๋(๋ง์คํน: masking) ๊ฒฝ์ฐ์ ์ฌ์ฉํจ
&(AND) ์ฐ์ฐ์
๋ ๊ฐ์ ๋นํธ ๊ฐ์ด ๋ชจ๋ 1์ธ ๊ฒฝ์ฐ์๋ง ์ฐ์ฐ์ ๊ฒฐ๊ณผ ๊ฐ์ด 1์ด ๋จ
int num1 = 5;
int num2 = 10;
int result = num1 + num2;
| num1 | 0 0 0 0 0 1 0 1 |
| & num2 | 0 0 0 0 1 0 1 0 |
| result | 0 0 0 0 0 0 0 0 |
|(OR) ์ฐ์ฐ์
๋นํธ ๊ฐ์ด ํ๋๋ผ๋ 1์ด๋ฉด ์ฐ์ฐ์ ๊ฒฐ๊ณผ ๊ฐ์ด 1์ด ๋จ
int num1 = 5;
int num2 = 10;
int result = num1 | num2;
| num1 | 0 0 0 0 0 1 0 1 |
| | num2 | 0 0 0 0 1 0 1 0 |
| result | 0 0 0 0 1 1 1 1 |
^(XOR) ์ฐ์ฐ์
๊ฐ์ ๊ฐ์ด๋ฉด 0, ๋ค๋ฅธ ๊ฐ์ด๋ฉด 1์ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ์ง
int num1 = 5;
int num2 = 10;
int result = num1 ^ num2;
| num1 | 0 0 0 0 0 1 0 1 |
| ^ num2 | 0 0 0 0 1 0 1 0 |
| result | 0 0 0 0 1 1 1 1 |
~(๋ฐ์ ) ์ฐ์ฐ์
๋นํธ ๊ฐ์ 0์ 1๋ก, 1์ 0์ผ๋ก ๋ฐ๊พธ๋ ์ฐ์ฐ์
int num = 10;
int result = ~num;
| num | 0 0 0 0 1 0 1 0 |
| ~ num | 1 1 1 1 0 1 0 1 |
<< ์ฐ์ฐ์
์ผ์ชฝ์ผ๋ก ๋นํธ๋ฅผ ์ด๋ํ๋ ์ฐ์ฐ์๋ก, ์ผ์ชฝ์ผ๋ก n๋นํธ ์ด๋ํ๋ ๊ฒ์ ๊ธฐ์กด ๊ฐ์ $2^n$๋งํผ ๊ณฑํ๋ค๋ ๋ป
int num = 5;
num << 2;
| num | 0 0 0 0 0 1 0 1 |
| num << 2 | 0 0 0 1 0 1 0 0 |
๋ฐ๋ผ์ ์ผ์ชฝ์ผ๋ก 2๋นํธ ์ด๋ํ 00010100์ $5*2^2$=20์ด ๋จ
>> ์ฐ์ฐ์
์ค๋ฅธ์ชฝ์ผ๋ก ๋นํธ๋ฅผ ์ด๋ํ๋ ์ฐ์ฐ์๋ก, ์ค๋ฅธ์ชฝ์ผ๋ก n๋นํธ ์ด๋ํ๋ฉด ๊ธฐ์กด ๊ฐ์ $2^n$๋งํผ ๋๋
int num = 10;
num >> 2;
| num | 0 0 0 0 1 0 1 0 |
| num >> 2 | 0 0 0 0 0 0 1 0 |
>>> ์ฐ์ฐ์
>> ์ฐ์ฐ๊ณผ ๋์ผํ๊ฒ ๋นํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํจ. ๋์ ์ฐจ์ด๋ >>> ์ฐ์ฐ์๋ ์ผ์ชฝ์ ์ฑ์์ง๋ ๋นํธ ๊ฐ์ด ๋ถํธ ๋นํธ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด 0์ด ๋จ
์ฐ์ฐ์ ์ฐ์ ์์
- ๋จํญ ์ฐ์ฐ์ > ์ดํญ ์ฐ์ฐ์ > ์ผํญ ์ฐ์ฐ์
- ๋์ ์ฐ์ฐ์์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ์
- ์ฐ์ , ๊ด๊ณ, ๋ ผ๋ฆฌ, ๋์ ์ฐ์ฐ์ ์์๋ก ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ ()์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์
| ์ฐ์ ์์ | ํ | ์ฐ์ฐ์ | ์ฐ์ฐ ๋ฐฉํฅ |
| 1 | ์ผ์ฐจ์ | () [] . | → |
| 2 | ๋จํญ | ! ++ -- + - | ← |
| 3 | ์ฐ์ | % / | → |
| 4 | ์ฐ์ | + - | → |
| 5 | ๋นํธ ์ด๋ | << >> | → |
| 6 | ๊ด๊ณ | < > <= >= | → |
| 7 | ๊ด๊ณ | == != | → |
| 8 | ๋นํธ ๊ณฑ | & | → |
| 9 | ๋นํธ ์ฐจ | ^ | → |
| 10 | ๋นํธ ํฉ | | | → |
| 11 | ๋ ผ๋ฆฌ ๊ณฑ | && | → |
| 12 | ๋ ผ๋ฆฌ ํฉ | || | → |
| 13 | ์กฐ๊ฑด | ? : | → |
| 14 | ๋์ | = += -= *= %= /= | ← |