๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Java/๐Ÿ’Š Java ๊ฐ•์˜

Java ์ž…๋ฌธ ๊ฐ•์˜_์—ฐ์‚ฐ์ž

by carrot0911 2024. 10. 24.

์œ ํŠœ๋ธŒ์—์„œ ๊น€์˜ํ•œ์˜ ์ž๋ฐ” ๋ฌด๋ฃŒ ์ž…๋ฌธ - ์ฝ”๋“œ๋กœ ์‹œ์ž‘ํ•˜๋Š” Java ์ฒซ๊ฑธ์Œ 10์‹œ๊ฐ„์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋‚ด์šฉ์„ ์ •๋ฆฌํ–ˆ๋‹ค๐Ÿ˜Š

 

์—ฐ์‚ฐ์ž

์—ฐ์‚ฐ์ž ์‹œ์ž‘

+, - , *, / ์™€ ๊ฐ™์ด ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐํ˜ธ๋ฅผ ์—ฐ์‚ฐ์ž๋ผ ํ•œ๋‹ค. ์ž๋ฐ”์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๋” ๋งŽ์€ ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์‹ค๋ฌด์—์„œ ์ฃผ๋กœ ๋‹ค๋ฃจ๋Š” ์—ฐ์‚ฐ์ž ์œ„์ฃผ๋กœ ์„ค๋ช…!

์—ฐ์‚ฐ์ž ์ข…๋ฅ˜

  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : +, -, *, /, %(๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž)
  • ์ฆ๊ฐ(์ฆ๊ฐ€ ๋ฐ ๊ฐ์†Œ) ์—ฐ์‚ฐ์ž : ++, --
  • ๋น„๊ต ์—ฐ์‚ฐ์ž : ==, !=, >, <, >=, <=
  • ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : &&(AND), ||(OR), !(NOT)
  • ๋Œ€์ž… ์—ฐ์‚ฐ์ž : =, +=, -=, *=, /=, %=
  • ์‚ผํ•ญ ์—ฐ์‚ฐ์ž : ? :

์—ฐ์‚ฐ์ž์™€ ํ”ผ์—ฐ์‚ฐ์ž

3 + 4
a + b
  • ์—ฐ์‚ฐ์ž(operator) : ์—ฐ์‚ฐ ๊ธฐํ˜ธ  ์˜ˆ) +, -
  • ํ”ผ์—ฐ์‚ฐ์ž(operand) : ์—ฐ์‚ฐ ๋Œ€์ƒ  ์˜ˆ) 3, 4, a, b

 

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋Š” ์ฃผ๋กœ ์ˆซ์ž๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ์ˆ˜ํ•™ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • +  (๋”ํ•˜๊ธฐ)
  • -  (๋นผ๊ธฐ)
  • *  (๊ณฑํ•˜๊ธฐ)
  • (๋‚˜๋ˆ„๊ธฐ)
  • %  (๋‚˜๋จธ์ง€)

Operator1

package operator;

public class Operator1 {

    public static void main(String[] args) {
        //๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
        int a = 5;
        int b = 2;

        // ๋ง์…ˆ
        int sum = a + b;
        System.out.println("a + b = " + sum);  //์ถœ๋ ฅ a + b = 7

        // ๋บ„์…ˆ
        int diff = a - b;
        System.out.println("a - b = " + diff);  //์ถœ๋ ฅ a - b = 3

        // ๊ณฑ์…ˆ
        int multi = a * b;
        System.out.println("a * b = " + multi);  //์ถœ๋ ฅ a * b = 10

        // ๋‚˜๋ˆ—์…ˆ
        int div = a / b;
        System.out.println("a / b = " + div);  //์ถœ๋ ฅ a / b = 2

        // ๋‚˜๋จธ์ง€
        int mod = a % b;
        System.out.println("a % b = " + mod);  //์ถœ๋ ฅ a % b = 1
    }
}

 

int sum = a + b ๊ณ„์‚ฐ ๊ณผ์ •

int sum = a + b  //1. ๋ณ€์ˆ˜ ๊ฐ’ ์ฝ๊ธฐ
int sum = 5 + 2  //2. ๋ณ€์ˆ˜ ๊ฐ’ ๊ณ„์‚ฐ
int sum = 7  //3. ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ sum์— ๋Œ€์ž…
sum = 7  //์ตœ์ข… ๊ฒฐ๊ณผ

 

์‹คํ–‰ ๊ฒฐ๊ณผ

a + b = 7
a - b = 3
a * b = 10
a / b = 2
a % b = 1
  • 5 / 2 ์˜ ๊ฒฐ๊ณผ๋Š” 2.5๊ฐ€ ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ์†Œ์ˆ˜์ ์ด ์ œ๊ฑฐ๋œ 2๊ฐ€ ๋‚˜์™”๋‹ค.
    • ์ž๋ฐ”์—์„œ ๊ฐ™์€ int ํ˜•๋ผ๋ฆฌ ๊ณ„์‚ฐํ•˜๋ฉด ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋„ ๊ฐ™์€ int ํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค. int ํ˜•์€ ์ •์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž (%)
    • ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. 5 / 2๋Š” ๋ชซ์ด 2 ๋‚˜๋จธ์ง€๊ฐ€ 1์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž๋Š” 5 % 2์˜ ๊ฒฐ๊ณผ๋Š” 1์ด ๋œ๋‹ค.
    • ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž๋Š” ์‹ค๋ฌด์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ๋‘ ์ข…์ข… ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ž˜ ๊ธฐ์–ตํ•ด ๋‘์ž.
โญ์ฃผ์˜! 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐโญ
10 / 0๊ณผ ๊ฐ™์€ ์ˆซ์ž๋Š” 0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋‹ค. (์ˆ˜ํ•™์—์„œ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ)
๋ฐฉ๊ธˆ ์˜ˆ์ œ์—์„œ ๋ณ€์ˆ˜ b = 0์„ ๋Œ€์ž…ํ•˜๋ฉด 5 / 0์ด ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์™ธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
Exception in thread "main" java.lang.ArithmeticException: / by zeroโ€‹

์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์‹œ์  ์ดํ›„์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.

 

๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ

์ž๋ฐ”๋Š” ํŠน๋ณ„ํ•˜๊ฒŒ ๋ฌธ์ž์—ด์—๋„ + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž์—ด์— + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‘ ๋ฌธ์ž๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Operator2

package operator;

public class Operator2 {
    public static void main(String[] args) {
        //๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ1
        String result1 = "hello " + "world";
        System.out.println(result1);

        //๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ2
        String s1 = "string1";
        String s2 = "string2";
        String result2 = s1 + s2;
        System.out.println(result2);

        //๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž ๋”ํ•˜๊ธฐ1
        String result3 = "a + b = " + 10;
        System.out.println(result3);

        //๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž ๋”ํ•˜๊ธฐ2
        int num = 20;
        String str = "a + b = ";
        String result4 = str + num;
        System.out.println(result4);
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

helloworld
string1string2
a + b = 10
a + b = 20

 

๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ1

String result1 = "hello" + "world"

  • "hello " ๋ฌธ์ž์—ด๊ณผ "world" ๋ฌธ์ž์—ด์„ ๋”ํ•ด์„œ "hello world" ๋ฌธ์ž์—ด์„ ๋งŒ๋“ ๋‹ค.
  • ๊ฒฐ๊ณผ๋ฅผ result1 ์— ์ €์žฅํ•œ๋‹ค.

๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ2

String result2 = s1 + s2

  • s1 ๊ณผ s2 ๋ณ€์ˆ˜์— ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ์ฝ๋Š”๋‹ค.
  • "string1" + "string2" ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์„œ "string1string2" ๋ฌธ์ž์—ด์„ ๋งŒ๋“ ๋‹ค.
  • ๊ฒฐ๊ณผ๋ฅผ result2 ์— ์ €์žฅํ•œ๋‹ค.

๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž ๋”ํ•˜๊ธฐ1

๋‹ค์Œ ์‹์€ ๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ์ž๋ฐ”์—์„œ ๋ฌธ์ž์™€ ์ˆซ์ž๋ฅผ ๋”ํ•˜๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ์— ์„œ๋กœ ๋”ํ•œ๋‹ค.

"a + b = " + 10

  • ๋ฌธ์ž : "a + b = "
  • ์ˆซ์ž : 10

๊ณ„์‚ฐ ๊ณผ์ •

"a + b = "(String) + 10(int)  //๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž ๋”ํ•˜๊ธฐ
"a + b = "(String) + "10"(int -> String)  //์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ
"a + b = " + "10"  //๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ
"a + b = 10"  //๊ฒฐ๊ณผ

 

๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž ๋”ํ•˜๊ธฐ2

๋ณ€์ˆ˜์— ๋‹ด๊ฒจ ์žˆ์–ด๋„ ๋ฌธ์ž์™€ ์ˆซ์ž๋ฅผ ๋”ํ•˜๋ฉด ๋ฌธ์ž๊ฐ€ ๋œ๋‹ค. ๊ณ„์‚ฐ ๊ณผ์ •์„ ํ™•์ธํ•ด ๋ณด์ž.

 

๊ณ„์‚ฐ ๊ณผ์ •

str(String) + num(int)
"a + b = "(String) + num(int)  //str ๋ณ€์ˆ˜์—์„œ ๊ฐ’ ์กฐํšŒ
"a + b = "(String) + 20(int)  //num ๋ณ€์ˆ˜์—์„œ ๊ฐ’ ์กฐํšŒ
"a + b = "(String) + "20"(int -> String)  //์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ
"a + b = " + "20"  //๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ
"a + b = 20"  //๊ฒฐ๊ณผ

์ž๋ฐ”๋Š” ๋ฌธ์ž์—ด์ธ String ํƒ€์ž…์— ๋‹ค๋ฅธ ํƒ€์ž…์„ ๋”ํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€์ƒ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. ์‰ฝ๊ฒŒ ์ด์•ผ๊ธฐํ•ด์„œ ๋ฌธ์ž์—ด์— ๋”ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค ๋ฌธ์ž์—ด์ด ๋œ๋‹ค.

 

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

์ˆ˜ํ•™์—์„œ 1 + 2 * 3 ์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋ง์…ˆ๋ณด๋‹ค ๊ณฑ์…ˆ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•œ๋‹ค.

1 + (2 * 3)  //๊ณฑ์…ˆ(*)์ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค. ๋”ฐ๋ผ์„œ ๋จผ์ € ๊ณ„์‚ฐํ•œ๋‹ค.
1 + 6
7  //๊ฒฐ๊ณผ

 

์ž๋ฐ”๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

Operator3

package operator;

public class Operator3 {

    public static void main(String[] args) {
        int sum1 = 1 + 2 * 3;  //1 + (2 * 3)๊ณผ ๊ฐ™๋‹ค.
        int sum2 = (1 + 2) * 3;
        System.out.println("sum1 = " + sum1);  //sum1 = 7
        System.out.println("sum2 = " + sum2);  //sum2 = 9
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

sum1 = 7
sum2 = 9
  • ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด sum1 = 7์ด ๋‚˜์™”๋‹ค. ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์— ์˜ํ•ด ๊ณฑ์…ˆ์ด ๋จผ์ € ๊ณ„์‚ฐ๋œ ๊ฒƒ์ด๋‹ค.
  • ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ˆ˜ํ•™๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ด„ํ˜ธ () ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. () ๋ฅผ ์‚ฌ์šฉํ•œ ๊ณณ์ด ๋จผ์ € ๊ณ„์‚ฐ๋œ๋‹ค.
  • sum2 ๋Š” ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ง์…ˆ์ด ๋จผ์ € ์ฒ˜๋ฆฌ๋˜๋„๋ก ํ–ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

package operator;

public class Operator4 {
    public static void main(String[] args) {
        int sum3 = 2 * 2 + 3 * 3;  //(2 *2) + (3 * 3)๊ณผ ๊ฐ™๋‹ค.
        int sum4 = (2 * 2) + (3 * 3);  //sum3๊ณผ ๊ฐ™๋‹ค.
        System.out.println("sum3 = " + sum3);
        System.out.println("sum4 = " + sum4);
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

sum3 = 13
sum4 = 13

 

sum3, sum4 ์— ์ €์žฅํ•˜๋Š” ๋‘ ์—ฐ์‚ฐ์€ ๊ฐ™์€ ์—ฐ์‚ฐ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ด„ํ˜ธ๊ฐ€ ์—†๋Š” 2 * 2 + 3 * 3 ์—ฐ์‚ฐ์€ ํ‰์†Œ ์ˆ˜ํ•™์„ ์ž˜ํ•˜๋Š” ๋ถ„๋“ค์€ ๊ธˆ๋ฐฉ ํ’€๊ฒ ์ง€๋งŒ ๋ณดํ†ต์€ ์ด ์—ฐ์‚ฐ์„ ๋ณด๊ณ  ์ž ๊น ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.

2 * 2 + 3 * 3
(2 * 2) + (3 * 3)  //๊ณฑ์…ˆ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค
4 + 9
13

 

์ด๋ ‡๊ฒŒ ๋ณต์žกํ•œ ๊ฒฝ์šฐ sum4์˜ (2 * 2) + (3 * 3) ์™€ ๊ฐ™์ด ๊ด„ํ˜ธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.

์ฝ”๋“œ๋ฅผ ๋ช‡ ์ž ์ค„์—ฌ์„œ ๋ชจํ˜ธํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•ด์ง€๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์ฝ”๋“œ๊ฐ€ ๋” ๋งŽ๋”๋ผ๋„ ๋ช…ํ™•ํ•˜๊ณ  ๋‹จ์ˆœํ•œ ๊ฒƒ์ด ๋” ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ ์ข‹๋‹ค.

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์• ๋งคํ•˜๊ฑฐ๋‚˜ ์กฐ๊ธˆ์ด๋ผ๋„ ๋ณต์žกํ•˜๋‹ค๋ฉด ์–ธ์ œ๋‚˜ ๊ด„ํ˜ธ๋ฅผ ๊ณ ๋ คํ•˜์ž!

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์•”๊ธฐ๋ฒ•

์ž๋ฐ”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ๋‹ค. ๋†’์€ ๊ฒƒ์—์„œ ๋‚ฎ์€ ์ˆœ์œผ๋กœ ์ ์—ˆ๋‹ค.

์ฒ˜์Œ์— ๋‚˜์˜ค๋Š” ๊ด„ํ˜ธ () ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’๊ณ , ๋งˆ์ง€๋ง‰์˜ ๋Œ€์ž… ์—ฐ์‚ฐ์ž(=)๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๋‹ค.

  1. ๊ด„ํ˜ธ ()
  2. ๋‹จํ•ญ ์—ฐ์‚ฐ์ž (์˜ˆ : ++, --, !, ~, new, (type))
  3. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž (*, /, % ์šฐ์„ , ๊ทธ๋‹ค์Œ์— +, -)
  4. Shift ์—ฐ์‚ฐ์ž (<<, >>, >>>)
  5. ๋น„๊ต ์—ฐ์‚ฐ์ž (<, <=, >, >=, instanceof)
  6. ๋“ฑ์‹ ์—ฐ์‚ฐ์ž (==, !=)
  7. ๋น„ํŠธ ์—ฐ์‚ฐ์ž (&, ^, |)
  8. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž (&&, ||)
  9. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž (? :)
  10. ๋Œ€์ž… ์—ฐ์‚ฐ์ž (=, +=, -=, *=, /=, %= ๋“ฑ๋“ฑ)

๊ทธ๋Ÿฌ๋ฉด ์ด ๋งŽ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์–ด๋–ป๊ฒŒ ์™ธ์›Œ์•ผ ํ• ๊นŒ? ์‚ฌ์‹ค ๋Œ€๋ถ€๋ถ„์˜ ์‹ค๋ฌด ๊ฐœ๋ฐœ์ž๋“ค์€ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์™ธ์šฐ์ง€ ์•Š๋Š”๋‹ค.

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋Š” ๋”ฑ 2๊ฐ€์ง€๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๋œ๋‹ค.

 

1. ์ƒ์‹ ์„ ์—์„œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์ž.

์šฐ์„ ์ˆœ์œ„๋Š” ์ƒ์‹ ์„ ์—์„œ ์ƒ๊ฐํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

 

๋‹ค์Œ ์˜ˆ๋ฅผ ๋ณด์ž

int sum = 1 + 2 * 3

๋‹น์—ฐํžˆ + ๋ณด๋‹ค * ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค.

 

๋‹ค์Œ์œผ๋กœ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž(+)์™€ ๋Œ€์ž…์—ฐ์‚ฐ์ž(=)๋ฅผ ๋น„๊ตํ•˜๋Š” ์˜ˆ๋ฅผ ๋ณด์ž.

int sum = 1 + 2

 

int sum = 1 + 2
int sum = 3  //์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ๋œ๋‹ค.
sum = 3  //๋Œ€์ž… ์—ฐ์‚ฐ์ž๊ฐ€ ๋งˆ์ง€๋ง‰์— ์ฒ˜๋ฆฌ๋œ๋‹ค.
  • 1 + 2๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ์— ๊ทธ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ณ€์ˆ˜ sum์— ๋„ฃ์–ด์•ผ ํ•œ๋‹ค. ๋Œ€์ž… ์—ฐ์‚ฐ์ž์ธ = ์ด ๋จผ์ € ์ˆ˜ํ–‰๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ๊ฐ€ ์‚ฌ์‹ค ๋” ์–ด๋ ต๋‹ค.

2. ์• ๋งคํ•˜๋ฉด ๊ด„ํ˜ธ ()๋ฅผ ์‚ฌ์šฉํ•˜์ž.

์ฝ”๋“œ๋ฅผ ๋”ฑ ๋ณด์•˜์„ ๋•Œ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ณ ๋ฏผํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์œผ๋ฉด, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋ญ”๊ฐ€ ๋ณต์žกํ•ด ๋ณด์ด๋ฉด ๋‚˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ทธ๋ ‡๊ฒŒ ๋А๋‚€๋‹ค. ์ด๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.

((2 * 2) + (3 * 3)) / (3 + 2)

 

์ •๋ฆฌ

  • ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋Š” ์ƒ์‹์„ ์—์„œ ์ƒ๊ฐํ•˜๊ณ , ์• ๋งคํ•˜๋ฉด ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์ž.
  • ๋ˆ„๊ตฌ๋‚˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์‰ฝ๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์™ธ์šฐ๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค! ๋ณต์žกํ•˜๋ฉด ๋ช…ํ™•ํ•˜๊ฒŒ ๊ด„ํ˜ธ๋ฅผ ๋„ฃ์–ด๋ผ!
  • ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‹จ์ˆœํ•จ๊ณผ ๋ช…ํ™•ํ•จ์ด๋‹ค! ์• ๋งคํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

 

์ฆ๊ฐ ์—ฐ์‚ฐ์ž

์ฆ๊ฐ€ ๋ฐ ๊ฐ์†Œ ์—ฐ์‚ฐ์ž๋ฅผ ์ค„์—ฌ์„œ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ผ ํ•œ๋‹ค.

์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” ++ ์™€ -- ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์ด๋“ค์€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 1๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ฑฐ๋‚˜ 1์”ฉ ๊ฐ์†Œํ•  ๋•Œ๊ฐ€ ์•„์ฃผ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ํŽธ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

OperatorAdd1

package operator;

public class OperatorAdd1 {

    public static void main(String[] args) {
        int a = 0;

        a = a + 1;
        System.out.println("a = " + a);  //1

        a = a + 1;
        System.out.println("a = " + a);  //2

        //์ฆ๊ฐ ์—ฐ์‚ฐ์ž
        ++a;  //a = a + 1
        System.out.println("a = " + a);  //3
        ++a;  //a = a + 1
        System.out.println("a = " + a);  //4
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

a = 1
a = 2
a = 3
a = 4

 

๋ณ€์ˆ˜ a ์˜ ๊ฐ’์„ ํ•˜๋‚˜ ์ฆ๊ฐ€ํ•˜๋ ค๋ฉด a = a + 1 ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ž๊ธฐ ์ž์‹ ์— 1 ์„ ๋”ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ž์‹ ์—๊ฒŒ ๋‹ค์‹œ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.

 

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜ํ–‰๋œ๋‹ค.

//a = 0
a = a + 1
a = 0 + 1  //๋ณ€์ˆ˜ a์˜ ๊ฐ’ ํ™•์ธ(0)
a = 1
//a = 1
a = a + 1
a = 1 + 1  //๋ณ€์ˆ˜ a์˜ ๊ฐ’ ํ™•์ธ(1)
a = 2

 

a = a + 1์„ ++a ๋กœ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž์ด๋‹ค.

์ •๋ฆฌํ•˜๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋“ค์–ด์žˆ๋Š” ์ˆซ์ž ๊ฐ’์„ ํ•˜๋‚˜ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

++ (์ฆ๊ฐ€), -- (๊ฐ์†Œ)

๊ฐ’์„ ํ•˜๋‚˜ ๊ฐ์†Œํ•  ๋•Œ๋Š” --a ์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ์ด๊ฒƒ์€ a = a - 1์ด ๋œ๋‹ค.

์ „์œ„, ํ›„์œ„ ์ฆ๊ฐ์—ฐ์‚ฐ์ž

์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์•ž์— ๋‘๊ฑฐ๋‚˜ ๋’ค์— ๋‘˜ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฐ์‚ฐ์ž์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  • ++a : ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ฅผ ํ”ผ์—ฐ์‚ฐ์ž ์•ž์— ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์•ž์— ์žˆ๋‹ค๊ณ  ํ•ด์„œ ์ „์œ„(Prefix) ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ผ ํ•œ๋‹ค.
  • a++ : ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ฅผ ํ”ผ์—ฐ์‚ฐ์ž ๋’ค์— ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ๋’ค์— ์žˆ๋‹ค๊ณ  ํ•ด์„œ ํ›„์œ„(Postfix) ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ผ ํ•œ๋‹ค.

OperatorAdd2

package operator;

public class OperatorAdd2 {

    public static void main(String[] args) {
        //์ „์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ
        int a = 1;
        int b = 0;

        b = ++a;  //a์˜ ๊ฐ’์„ ๋จผ์ € ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ b์— ๋Œ€์ž…
        System.out.println("a = " + a + ", b = " + b);

        //ํ›„์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์˜ˆ
        a = 1;  //a ๊ฐ’์„ ๋‹ค์‹œ 1๋กœ ์ง€์ •
        b = 0;  //b ๊ฐ’์„ ๋‹ค์‹œ 0์œผ๋กœ ์ง€์ •

        b = a++;  //a์˜ ํ˜„์žฌ ๊ฐ’์„ b์— ๋จผ์ € ๋Œ€์ž…ํ•˜๊ณ , ๊ทธ ํ›„ a ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ด
        System.out.println("a = " + a + ", b = " + b);  //๊ฒฐ๊ณผ : a = 2, b = 1
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

a = 2, b = 2
a = 2, b = 1

 

์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ๋ณ€์ˆ˜ ์•ž์— ์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ์ „์œ„ ์ฆ๊ฐ• ์—ฐ์‚ฐ์ž๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ์ฆ๊ฐ ์—ฐ์‚ฐ์ด ๋จผ์ € ์ˆ˜ํ–‰๋œ ํ›„ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋œ๋‹ค.

์˜ˆ)  ++a ์ „์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

a = 1, b= 0
b = ++a  //์ „์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

a = a + 1  //a์˜ ์ฆ๊ฐ ์—ฐ์‚ฐ์ด ๋จผ์ € ์ง„ํ–‰, a = 2
b = a  //์ดํ›„์— a๋ฅผ ๋Œ€์ž… b = 2

๊ฒฐ๊ณผ : a = 2, b = 2

 

์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ๋ณ€์ˆ˜ ๋’ค์— ์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ํ›„์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ด ๋จผ์ € ์ˆ˜ํ–‰๋œ ํ›„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋œ๋‹ค.

์˜ˆ) a++ ํ›„์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

a = 1, b = 0
b = a++  //ํ›„์œ„ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

b = a;  //a์˜ ๊ฐ’์„ ๋จผ์ € b์— ๋Œ€์ž… b = 1
a = a + 1;  //์ดํ›„์— a์˜ ๊ฐ’์„ ์ฆ๊ฐ€ a = 2

๊ฒฐ๊ณผ : a = 2, b = 1

 

์ฐธ๊ณ ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋ฅผ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋ณธ์ธ์˜ ๊ฐ’๋งŒ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์œ„์ด๋“  ํ›„์œ„์ด๋“  ๋‘˜ ๋‹ค ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™๋‹ค.

++a;
a++;

 

๋น„๊ต ์—ฐ์‚ฐ์ž

๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ์ฃผ๋กœ ๋’ค์—์„œ ์„ค๋ช…ํ•˜๋Š” ์กฐ๊ฑด๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋น„๊ต ์—ฐ์‚ฐ์ž

  • == : ๋™๋“ฑ์„ฑ (equal to)
  • != : ๋ถˆ์ผ์น˜ (not equal to)
  • > : ํฌ๋‹ค (greater than)
  • < : ์ž‘๋‹ค (less than)
  • >= : ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค (greater than or equal to)
  • <= : ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค (less than or equal to)

๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฐธ(true) ๋˜๋Š” ๊ฑฐ์ง“(false)์ด๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ฐธ ๊ฑฐ์ง“์€ boolean ํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ = ์™€ ==(= x2)์ด ๋‹ค๋ฅด๋‹ค๋Š” ์ ์ด๋‹ค.

  • = : ๋Œ€์ž… ์—ฐ์‚ฐ์ž, ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•œ๋‹ค.
  • == : ๋™๋“ฑํ•œ ์ง€ ํ™•์ธํ•˜๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž

๋ถˆ์ผ์ง€ ์—ฐ์‚ฐ์ž๋Š” != ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ! ๋Š” ๋ฐ˜๋Œ€๋ผ๋Š” ๋œป์ด๋‹ค.

 

Comp1

package operator;

public class Comp1 {
    public static void main(String[] args) {
        int a = 2;
        int b = 3;

        System.out.println(a == b);
        System.out.println(a != b);
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a >= b);
        System.out.println(a <= b);

        //๊ฒฐ๊ณผ๋ฅผ boolean ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.
        boolean result = a == b;
        System.out.println("result = " + result);
    }
}

 

๋ฌธ์ž์—ด ๋น„๊ต

๋ฌธ์ž์—ด์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•  ๋•Œ๋Š” == ์ด ์•„๋‹ˆ๋ผ .equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

==๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๊ณตํ•  ๋•Œ๋„ ์žˆ์ง€๋งŒ ์‹คํŒจํ•  ๋•Œ๋„ ์žˆ๋‹ค. ์ง€๊ธˆ์€ ์ด ๋ถ€๋ถ„์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šฐ๋ฏ€๋กœ ๋‹จ์ˆœํžˆ ๋ฌธ์ž์—ด์˜ ๋น„๊ต๋Š” .equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค ์ •๋„๋กœ ์•Œ๊ณ  ์žˆ์ž.

 

Comp2 - ๋ฌธ์ž์—ด ๋น„๊ต ์˜ˆ์‹œ

package operator;

public class Comp2 {

    public static void main(String[] args) {
        String str1 = "๋ฌธ์ž์—ด1";
        String str2 = "๋ฌธ์ž์—ด2";

        boolean result1 = "hello".equals("hello");  //๋ฆฌํ„ฐ๋Ÿด ๋น„๊ต
        boolean result2 = str1.equals("๋ฌธ์ž์—ด1");  //๋ฌธ์ž์—ด ๋ณ€์ˆ˜, ๋ฆฌํ„ฐ๋Ÿด ๋น„๊ต
        boolean result3 = str1.equals(str2);  //๋ฌธ์ž์—ด ๋ณ€์ˆ˜ ๋น„๊ต

        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);

    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

true
true
false

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” boolean ํ˜•์ธ true, false ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

  • && (๊ทธ๋ฆฌ๊ณ ) : ๋‘ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ชจ๋‘ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๊ฑฐ์ง“์ด๋ฉด ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜
  • || (๋˜๋Š”) : ๋‘ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜. ๋‘˜ ๋‹ค ๊ฑฐ์ง“์ด๋ฉด ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜
  • ! (๋ถ€์ •) : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์  ๋ถ€์ •์„ ๋ฐ˜ํ™˜. ์ฆ‰, ์ฐธ์ด๋ฉด ๊ฑฐ์ง“์„, ๊ฑฐ์ง“์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜

Logical1

package operator;

public class Logical1 {

    public static void main(String[] args) {
        System.out.println("&& : AND ์—ฐ์‚ฐ");
        System.out.println(true && true);
        System.out.println(true && false);
        System.out.println(false && false);

        System.out.println("|| : OR ์—ฐ์‚ฐ");
        System.out.println(true || true);
        System.out.println(true || false);
        System.out.println(false || false);

        System.out.println("! ์—ฐ์‚ฐ");
        System.out.println(!true);
        System.out.println(!false);

        System.out.println("๋ณ€์ˆ˜ ํ™œ์šฉ");
        boolean a = true;
        boolean b = false;
        System.out.println(a && b);
        System.out.println(a || b);
        System.out.println(!a);
        System.out.println(!b);
    }
}
  • && : ๋‘ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ชจ๋‘ ์ฐธ์ด์–ด์•ผ true ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๊ฑฐ์ง“์ด๋ฉด false ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • || : ๋‘ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด true ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‘˜ ๋‹ค ๋ชจ๋‘ ๊ฑฐ์ง“์ด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ! : ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์  ๋ถ€์ •์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฐธ์ด๋ฉด ๊ฑฐ์ง“์„, ๊ฑฐ์ง“์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

  • a && b ๋Š” false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‘˜ ์ค‘ ํ•˜๋‚˜์ธ b ๊ฐ€ ๊ฑฐ์ง“์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • a || b ๋Š” true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‘˜ ์ค‘ ํ•˜๋‚˜์ธ a ๊ฐ€ ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • !a ์™€ !b ๋Š” ๊ฐ๊ฐ์˜ ๋…ผ๋ฆฌ์  ๋ถ€์ •์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ํ™œ์šฉ

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

๋ณ€์ˆ˜ a ๊ฐ€ 10๋ณด๋‹ค ํฌ๊ณ  20 ๋ณด๋‹ค ์ž‘์€์ง€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ™•์ธํ•ด ๋ณด์ž.

 

Logical2

package operator;

public class Logical2 {

    public static void main(String[] args) {
        int a = 15;
        //a๋Š” 10๋ณด๋‹ค ํฌ๊ณ  20๋ณด๋‹ค ์ž‘๋‹ค.
        boolean result = a > 10 && a < 20; //(a > 10) && (a <20)
        //boolean result = 10 > a && a < 20; //(a > 10) && (a <20)
        System.out.println("result = " + result);
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

result = true

 

โœ”๏ธ์ฐธ๊ณ 
๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€์ˆ˜์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.
๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ ๋” ์ฝ๊ธฐ ์ข‹๋‹ค.
boolean result = 10 < a && a < 20;โ€‹

 

๋Œ€์ž… ์—ฐ์‚ฐ์ž

๋Œ€์ž… ์—ฐ์‚ฐ์ž

๋Œ€์ž… ์—ฐ์‚ฐ์ž(=)๋Š” ๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ์—ฐ์‚ฐ์ž๋‹ค. ์ด ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, int a = 1 ๋Š” a ๋ผ๋Š” ๋ณ€์ˆ˜์— 1 ์ด๋ผ๋Š” ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

 

์ถ•์•ฝ(๋ณตํ•ฉ) ๋Œ€์ž… ์—ฐ์‚ฐ์ž

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž์™€ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ํ•œ ๋ฒˆ์— ์ถ•์•ฝํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์„ ์ถ•์•ฝ(๋ณตํ•ฉ) ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ผ ํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ์ข…๋ฅ˜ : +=, -=, *=, /=, %=

 

์ด ์—ฐ์‚ฐ์ž๋Š” ์—ฐ์‚ฐ๊ณผ ๋Œ€์ž…์„ ํ•œ ๋ฒˆ์— ์ถ•์•ฝํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค, ๋‹ค์Œ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.

i = i + 3 โ†’ i += 3

i = i * 4 โ†’ i *= 4

 

Assign1

package operator;

public class Assign1 {

    public static void main(String[] args) {
        int a = 5;
        a += 3;  // 8 (5 + 3) : a = a + 3
        a -= 2;  // 6 (8 - 2) : a = a - 2
        a *= 4;  // 24 (6 * 4) : a = a * 4
        a /= 3;  // 8 (24 / 3) : a = a / 3
        a %= 5;  // 3 (8 % 5) : a = a % 5
        System.out.println(a);
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

3

 

๋ฌธ์ œ์™€ ํ’€์ด

๋ฌธ์ œ 1 - int์™€ ํ‰๊ท 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

ํด๋ž˜์Šค ์ด๋ฆ„์€ OperationEx1๋ผ๊ณ  ์ ์–ด์ฃผ์„ธ์š”.

  1. num1, num2, num3๋ผ๋Š” ์ด๋ฆ„์˜ ์„ธ ๊ฐœ์˜ int ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , ๊ฐ๊ฐ 10, 20, 30์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜์„ธ์š”.
  2. ์„ธ ๋ณ€์ˆ˜์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ sum ์ด๋ผ๋Š” ์ด๋ฆ„์˜ int ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์„ธ์š”.
  3. ์„ธ ๋ณ€์ˆ˜์˜ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ average ๋ผ๋Š” ์ด๋ฆ„์˜ int ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์„ธ์š”. ํ‰๊ท  ๊ณ„์‚ฐ ์‹œ ์†Œ์ˆ˜์  ์ดํ•˜์˜ ๊ฒฐ๊ณผ๋Š” ๋ฒ„๋ฆผ ํ•˜์„ธ์š”.
  4. sum ๊ณผ average ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•˜์„ธ์š”.
โœ”๏ธ์ฐธ๊ณ 
์ž๋ฐ”์—์„œ int ๋ผ๋ฆฌ์˜ ๋‚˜๋ˆ—์…ˆ์€ ์ž๋™์œผ๋กœ ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๋ฒ„๋ฆฐ๋‹ค.

 

๋ฌธ์ œ 1 - ์ •๋‹ต

OperationEx1

package operator;

public class OperationEx1 {

    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 20;
        int num3 = 30;

        int sum = num1 + num2 + num3;
        int average = (num1 + num2 + num3) / 3;

        System.out.println("sum = " + sum);
        System.out.println("average = " + average);
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

60
20

 

๋ฌธ์ œ 2 - double๊ณผ ํ‰๊ท 

ํด๋ž˜์Šค ์ด๋ฆ„ : OperationEx2

// ๋‹ค์Œ double ๋ณ€์ˆ˜๋“ค์„ ์„ ์–ธํ•˜๊ณ  ๊ทธ ํ•ฉ๊ณผ ํ‰๊ท ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.
double val1 = 1.5;
double val2 = 2.5;
double val3 = 3.5;

 

์ •๋‹ต - double ๋ฐ์ดํ„ฐ ํƒ€์ž…

package operator;

public class OperationEx2 {

    public static void main(String[] args) {
        // ๋‹ค์Œ double ๋ณ€์ˆ˜๋“ค์„ ์„ ์–ธํ•˜๊ณ  ๊ทธ ํ•ฉ๊ณผ ํ‰๊ท ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.
        double val1 = 1.5;
        double val2 = 2.5;
        double val3 = 3.5;

        double sum = val1 + val2 + val3;
        double avg = sum / 3;

        System.out.println("sum = " + sum);
        System.out.println("avg = " + avg);
    }
}

 

๋ฌธ์ œ 3 - ํ•ฉ๊ฒฉ ๋ฒ”์œ„

ํด๋ž˜์Šค ์ด๋ฆ„ : OperationEx3

  • int ํ˜• ๋ณ€์ˆ˜ score๋ฅผ ์„ ์–ธํ•˜์„ธ์š”.
  • score๊ฐ€ 80์  ์ด์ƒ์ด๊ณ , 100์  ์ดํ•˜์ด๋ฉด true ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ˆ๋ฉด false๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”.

์ •๋‹ต - OperationEx3

package operator;

public class OperationEx3 {

    public static void main(String[] args) {
        int score = 80;
        boolean result = 80 <= score && score <= 100;

        System.out.println("result = " + result);
    }
}

 

์‹คํ–‰ ๊ฒฐ๊ณผ

true

 

์ •๋ฆฌ

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž

  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : +, -, *, /, %(๋‚˜๋จธ์ง€)
  • ์ฆ๊ฐ€ ๋ฐ ๊ฐ์†Œ ์—ฐ์‚ฐ์ž : ++, --
  • ๋น„๊ต ์—ฐ์‚ฐ์ž : ==, !=, >, <, >=, <=
  • ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : && (AND), || (OR), ! (NOT)
  • ๋Œ€์ž… ์—ฐ์‚ฐ์ž : =, +=, -=, *=, /=, %=

๋‹ค์Œ ์—ฐ์‚ฐ์ž๋“ค๋„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๋’ท๋ถ€๋ถ„์—์„œ ํ•™์Šตํ•œ๋‹ค.

  • ์‚ผํ•ญ ์—ฐ์‚ฐ์ž : ? :
  • instanceof ์—ฐ์‚ฐ์ž : ๊ฐ์ฒด ํƒ€์ž…์„ ํ™•์ธํ•œ๋‹ค.
  • ๊ทธ ์™ธ : new, [ ] (๋ฐฐ์—ด ์ธ๋ฑ์Šค), . (๊ฐ์ฒด ๋ฉค๋ฒ„ ์ ‘๊ทผ), ( ) (๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ)

๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ์‹ค๋ฌด์—์„œ ๊ฑฐ์˜ ์‚ฌ์šฉํ•  ์ผ์ด ์—†๋‹ค. ํ•„์š”ํ•  ๋•Œ ์ฐพ์•„๋ณด์ž.

  • ๋น„ํŠธ ์—ฐ์‚ฐ์ž : &, |, ^, ~, <<, >>, >>>