๐ Java์ Expression๊ณผ Statement
๊ฐ์ ๋ง๋๋ ์ฝ๋์ ๋์์ ์ํํ๋ ์ฝ๋, ์ด๋ป๊ฒ ๋ค๋ฅผ๊น์?
์๋ฐ ์ฝ๋๋ฅผ ์ฝ๋ค ๋ณด๋ฉด ์ด๋๊น์ง๊ฐ ๊ฐ์ด๊ณ ์ด๋๋ถํฐ๊ฐ ์คํ์ธ์ง ํท๊ฐ๋ฆด ๋๊ฐ ์์ต๋๋ค ๐
Expression๊ณผ Statement๋ฅผ ๊ตฌ๋ถํ๊ณ ๋๋ ์ฝ๋๊ฐ ํจ์ฌ ์ ์ฝํ์ต๋๋ค!
Expression์ ๊ณ์ฐ๊ธฐ์ ์ซ์์ ์ฐ์ฐ์๋ฅผ ์
๋ ฅํ๋ ๊ฒ,
Statement๋ ๋ฒํผ์ ๋๋ฌ ์คํํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
๐น Expression (ํํ์)
ํ๋์ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ ์ฝ๋ ์กฐ๊ฐ์ ๋๋ค.
๋ง์น ์์์ฒ๋ผ, ๊ณ์ฐํ๋ฉด ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค๋ ์ฝ๋์
๋๋ค.3 + 5๋ ๊ณ์ฐํ๋ฉด 8์ด ๋์ฃ . ์ด์ฒ๋ผ ํ๊ฐํ๋ฉด ๊ฐ์ด ๋์ค๋ ๊ฒ์ด Expression์
๋๋ค.
์์
int a = 5, b = 10;
int c = a + b; // 'a + b'๋ Expression โ 15๋ก ํ๊ฐ๋จ
๐ Expression ์ข ๋ฅ
| ์ข ๋ฅ | ์์ | ๊ฒฐ๊ณผ |
|---|---|---|
| ์ฐ์ | 2 + 3, a * b |
5, 24 |
| ๋ ผ๋ฆฌ | a < b, flag == true |
true ๋๋ false |
| ๋ฌธ์์ด ์ฐ๊ฒฐ | "Hello, " + "world!" |
"Hello, world!" |
| ์กฐ๊ฑด (์ผํญ) | a > b ? a : b |
a ๋๋ b |
| ๋ฉ์๋ ํธ์ถ | Math.max(a, b) |
๋ ์ ์ค ํฐ ๊ฐ |
| ์ธ์คํด์ค ์์ฑ | new Date() |
Date ๊ฐ์ฒด |
โจ ์ฌ์ฉ ์์
public class ExpressionExample {
public static void main(String[] args) {
int a = 4, b = 6;
System.out.println(a + b); // ์ฐ์ โ 10
System.out.println(a < b); // ๋
ผ๋ฆฌ โ true
System.out.println("Hello, " + "world!"); // ๋ฌธ์์ด ์ฐ๊ฒฐ โ Hello, world!
System.out.println(a > b ? a : b); // ์กฐ๊ฑด โ 6
System.out.println(Math.max(a, b)); // ๋ฉ์๋ ํธ์ถ โ 6
System.out.println(new java.util.Date()); // ์ธ์คํด์ค ์์ฑ โ ํ์ฌ ๋ ์ง
}
}
๐ค ๊ทธ๋ผ void ๋ฉ์๋๋ Expression์ผ๊น?
๊ณต๋ถํ๋ค๊ฐ ๋ฌธ๋ ๊ถ๊ธํด์ก์ต๋๋ค.System.out.println()์ฒ๋ผ void ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒ๋ Expression์ผ๊น์? ๐ง
๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด, ๋ฌธ๋ฒ์ ์ผ๋ก๋ Expression์ด ๋ง์ต๋๋ค.
ํ์ง๋ง JLS(Java Language Specification)๋ ์ด๋ ๊ฒ ๋ช
์ํฉ๋๋ค.
void ๋ฉ์๋๋ฅผ ํธ์ถํ๋ Expression์ ์๋ฌด๊ฒ๋ ๋ํ๋ด์ง ์๋๋ค(denotes nothing).
๋ฐ๋ผ์ Expression Statement๋ก๋ง ์ฌ์ฉํ ์ ์๋ค.
์ฆ, void ๋ฉ์๋๋ Expression์ด์ง๋ง ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ํ์ํ ๊ณณ์๋ ์ธ ์ ์์ต๋๋ค.
int x = System.out.println(); // โ ์ปดํ์ผ ์๋ฌ
System.out.println(); // โ
Expression Statement๋ก๋ง ์ฌ์ฉ ๊ฐ๋ฅ
โ ๏ธ void ๋ฉ์๋๋ Expression์ด์ง๋ง,
๊ฐ์ด ์์ด์ Expression Statement๋ก๋ง ์ธ ์ ์๋ค!!
๐น Statement (๋ฌธ์ฅ)
์คํ ๊ฐ๋ฅํ ๋ ๋ฆฝ์ ์ธ ์ฝ๋ ๋จ์์ ๋๋ค.
Expression์ด ๊ฐ์ ๋ง๋๋ ์ฌ๋ฃ๋ผ๋ฉด, Statement๋ ๊ทธ ์ฌ๋ฃ๋ฅผ ๊ฐ์ง๊ณ ์ค์ ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ํ๋ ํ๋์
๋๋ค.
๋๋ถ๋ถ์ ์ธ๋ฏธ์ฝ๋ก (;)์ผ๋ก ๋๋ฉ๋๋ค.
์์
int x = 5; // ๋ณ์ ์ ์ธ
System.out.println("Hi"); // ๋ฉ์๋ ํธ์ถ
for (int i = 0; i < 10; i++) { // ๋ฐ๋ณต ๋ธ๋ก
// ...
}
๐ 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 |
โจ ์ฌ์ฉ ์์
public class StatementExample {
public static void main(String[] args) {
int a = 5; // Declaration Statement
a = 10; // Expression Statement (ํ ๋น)
System.out.println(a); // Expression Statement (๋ฉ์๋ ํธ์ถ)
a++; // Expression Statement (์ฆ๊ฐ)
if (a > 5) { // Control Flow Statement
System.out.println("5๋ณด๋ค ํฝ๋๋ค");
}
for (int i = 0; i < 3; i++) { // Control Flow Statement
if (i == 2) break; // Jump Statement
System.out.println(i);
}
{ // Block Statement
int temp = 100;
System.out.println(temp);
}
}
}
๐ ๋๋ค์ Expression
// Expression ๋ฐฉ์ (๊ฐ๊ฒฐ)
Function<Integer, Integer> square = x -> x * x;
// Statement ๋ฐฉ์
Function<Integer, Integer> square = x -> { return x * x; };
๋๋ค์์์ Expression์ ํ์ฉํ๋ฉด ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ธ ์ ์์ต๋๋ค.{ return x * x; } ๋์ x * x Expression๋ง ์จ๋ ๋ฉ๋๋ค.
โ ๋ง๋ฌด๋ฆฌ
| ๊ตฌ๋ถ | Expression | Statement |
|---|---|---|
| ๋ชฉ์ | ๊ฐ์ ์์ฑ | ๋์ ์ํ |
| ๊ฒฐ๊ณผ | ๋จ์ผ ๊ฐ | ์คํ ํ๋ฆ ๊ตฌ์ฑ |
| ์ฌ์ฉ | ๋ค๋ฅธ ์ ๋ด๋ถ์ ์ฌ์ฉ ๊ฐ๋ฅ | ๋ ๋ฆฝ์ ์ผ๋ก ์คํ |
| ์์ | a + b, new Date() |
int x = 5;, if (...) {} |
๐ ์ฐธ๊ณ ์๋ฃ
'Programming > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์๋ฐ ์์ฑ์(Constructor) (1) | 2025.04.11 |
|---|---|
| Java์ ๋ชจ๋ ์ฐ์ฐ์ (0) | 2025.04.10 |
| ๋ณ์ (Variables) (0) | 2025.03.31 |
| Java ๋์ ์ฐ์ฐ์ย '='ย ๊ธฐ์ค RHS, LHS (0) | 2025.03.26 |
| Java์ค์นํ๊ธฐ Mac(M1, M2), Window (0) | 2025.03.26 |