Programming languages/Java

Java์˜ Expression vs Statement

yoooCo 2025. 3. 28. 09:31

๐ŸŒŸ Java์˜ Expression vs Statemen



์ž๋ฐ”(Java)์—์„œ Expression(ํ‘œํ˜„์‹)๊ณผ Statement(๋ฌธ์žฅ)๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ๊ณผ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐœ๋…์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๋ฉด ์ฝ”๋“œ์˜ ์ดํ•ด๋„์™€ ์ž‘์„ฑ ๋Šฅ๋ ฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.




๐Ÿงฉ 1. Expression์ด๋ž€?

๐Ÿ’ก ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ!


Expression์€ ๋‹จ์ผ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜, ์—ฐ์‚ฐ์ž, ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋“ฑ์ด expression์„ ์ด๋ฃฐ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ expression์˜ ์ผ๋ถ€๋กœ ์ค‘์ฒฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… Expression ์˜ˆ์‹œ

  • 5 โ†’ ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด
  • x + y โ†’ ๋ณ€์ˆ˜ ๊ฐ„ ์—ฐ์‚ฐ
  • methodCall() โ†’ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
  • true โ†’ boolean ๋ฆฌํ„ฐ๋Ÿด
  • Math.sqrt(a * a + b * b) โ†’ ๋ณตํ•ฉ ์ˆ˜ํ•™ ํ‘œํ˜„์‹
int a = 5;
int b = 10;
int c = a + b; // 'a + b'๋Š” expression

๐Ÿ” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ Expression

๐Ÿงฎ ์‚ฐ์ˆ  Expression

  • 2 + 3 โ†’ 5
  • a * b โ†’ ์˜ˆ: 4 * 6 = 24

๐Ÿ” ๋…ผ๋ฆฌ Expression

  • a < b โ†’ true ๋˜๋Š” false
  • flag == true

๐Ÿงต ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ Expression

  • "Hello, " + "world!" โ†’ "Hello, world!"

๐Ÿงญ ์กฐ๊ฑด Expression (์‚ผํ•ญ ์—ฐ์‚ฐ์ž)

  • a > b ? a : b

๐Ÿงช ํ•จ์ˆ˜/๋ฉ”์„œ๋“œ ํ˜ธ์ถœ Expression

  • Math.max(a, b)

๐ŸŽ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ Expression

  • new Date()

๐Ÿšฆ 2. Statement๋ž€?

๐Ÿ’ก ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ ๋‹จ์œ„!

Statement๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.
๋Œ€๋ถ€๋ถ„์€ ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๋๋‚˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ชฉ์ ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ statement๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

โœ… Statement ์˜ˆ์‹œ

int x = 5;                    // ๋ณ€์ˆ˜ ์„ ์–ธ
System.out.println("Hi");     // ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
for (int i = 0; i < 10; i++) {
  // ๋ฐ˜๋ณต ๋ธ”๋ก
}

๐Ÿ—‚๏ธ 3. ์ž๋ฐ”์˜ Statement ์ข…๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช… ์˜ˆ์‹œ
๐Ÿงฉ Expression Statement expression + ์„ธ๋ฏธ์ฝœ๋ก  a = 5;, i++;, print();
๐Ÿ“ฆ Declaration Statement ๋ณ€์ˆ˜ ์„ ์–ธ int a;, String name;
๐Ÿ”„ Control Flow Statement ์กฐ๊ฑด/๋ฐ˜๋ณต ํ๋ฆ„ ์ œ์–ด if, for, while, switch
๐Ÿงฑ Block Statement ์—ฌ๋Ÿฌ statement ๋ฌถ์Œ { statement1; statement2; }
๐Ÿš€ Jump Statement ํ๋ฆ„ ๋ณ€๊ฒฝ break, continue, return, throw


๐ŸŽฏ 4. Expression Statement๋ž€?

Expression Statement๋Š” expression์„ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฒ„๋ฆฌ๋Š” statement์ž…๋‹ˆ๋‹ค.
์ฝ”๋“œ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์ฃ .

๐Ÿ”ง ๋Œ€ํ‘œ์ ์ธ Expression Statement

a = 5;               // ํ• ๋‹น
System.out.println(); // ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
i++;                  // ์ฆ๊ฐ ์—ฐ์‚ฐ



Expression ์ž์ฒด๋Š” ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋˜์ง€๋งŒ, Expression Statement๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‹คํ–‰ ์ง€์‹œ์˜ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.




๐ŸŒฑ ๋งˆ๋ฌด๋ฆฌ: Expression๊ณผ Statement ์ฐจ์ด ํ•œ๋ˆˆ์—!

๊ตฌ๋ถ„ Expression Statement
๐ŸŽฏ ๋ชฉ์  ๊ฐ’์„ ์ƒ์„ฑ ๋™์ž‘ ์ˆ˜ํ–‰
๐Ÿงพ ๊ฒฐ๊ณผ ๋‹จ์ผ ๊ฐ’ ์‹คํ–‰ ํ๋ฆ„ ๊ตฌ์„ฑ
๐Ÿ”„ ์‚ฌ์šฉ ๋‹ค๋ฅธ ์‹ ๋‚ด๋ถ€์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰
๐Ÿ’ฌ ์˜ˆ์‹œ a + b, new Date() int x = 5;, if (...) {}


๐Ÿ”ฅ ๋ชจ๋“  Expression์€ Statement๊ฐ€ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ชจ๋“  Statement๋Š” Expression์ด ์•„๋‹™๋‹ˆ๋‹ค!




โœจ ๋ณด๋„ˆ์Šค: ๋žŒ๋‹ค์™€ Expression

Function<Integer, Integer> square = x -> x * x;

์ด์ฒ˜๋Ÿผ ๋žŒ๋‹ค์—์„œ { return x * x; } ๋Œ€์‹  x * x ํ‘œํ˜„์‹๋งŒ ์จ๋„ OK!
Expression์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋žŒ๋‹ค์‹๋„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Ž