[Java] Java ์ ์ด๋ฌธ ์์ ์ ๋ณต!
๋ชฉ์ฐจ
ํ๋ก๊ทธ๋๋ฐ์์ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
Java์์๋ ์ด๋ฐ ํ๋ฆ ์ ์ด๋ฅผ ์ํ ๋ฌธ๋ฒ์ผ๋ก ์ ์ด๋ฌธ(Control Statements)์ ์ ๊ณตํฉ๋๋ค.
์ค๋์ Java์ ๋ํ์ ์ธ ์ ์ด๋ฌธ์ธ ์กฐ๊ฑด๋ฌธ(if, switch)๊ณผ ๋ฐ๋ณต๋ฌธ(for, while, do-while), ๊ทธ๋ฆฌ๊ณ ํ๋ฆ ์ ์ด ํค์๋(break, continue)์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
โ ์กฐ๊ฑด๋ฌธ (Conditional Statements)
์กฐ๊ฑด๋ฌธ์ ํน์ ์กฐ๊ฑด์ด ์ฐธ์ธ์ง ๊ฑฐ์ง์ธ์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝ๋๋ฅผ ์คํํ๋ ๊ตฌ๋ฌธ์ ๋๋ค.
if ๋ฌธ
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ, ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์คํํ๋ ๊ตฌ๋ฌธ์ ๋๋ค. ์กฐ๊ฑด์ด true์ผ ๋ ๋ธ๋ก ๋ด๋ถ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
int age = 20;
if (age >= 18) {
System.out.println("์ฑ์ธ์
๋๋ค.");
}
๐ else, else if๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์กฐ๊ฑด์ ๋๋ ์ฒ๋ฆฌํ ์ ์์ด์!
if (age >= 18) {
System.out.println("์ฑ์ธ์
๋๋ค.");
} else if (age >= 13) {
System.out.println("์ฒญ์๋
์
๋๋ค.");
} else {
System.out.println("์ด๋ฆฐ์ด์
๋๋ค.");
}
switch ๋ฌธ
switch๋ ํน์ ๊ฐ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ถ๊ธฐ๋ฅผ ๋๋๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
int day = 3;
switch (day) {
case 1:
System.out.println("์์์ผ");
break;
case 2:
System.out.println("ํ์์ผ");
break;
case 3:
System.out.println("์์์ผ");
break;
default:
System.out.println("์ฃผ์ค์ด ์๋๋๋ค.");
}
๐ก break๋ฅผ ์ฐ์ง ์์ผ๋ฉด ๋ค์ case๋ก ๊ณ์ ์คํ(fall-through) ๋๋ฏ๋ก ๊ผญ ํ์ํฉ๋๋ค!
๐ Java 12์ switch ํํ์
Java 12๋ถํฐ๋ switch๋ฅผ ํํ์์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํ์ดํ(->)์ ํจ๊ป ๋ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ์ ์ ๊ณตํฉ๋๋ค.
String day = "MONDAY";
String result = switch (day) {
case "MONDAY", "TUESDAY" -> "์ฃผ์ค";
case "SATURDAY", "SUNDAY" -> "์ฃผ๋ง";
default -> "์ ์ ์์";
};
๐ ๋ฐ๋ณต๋ฌธ (Loop Statements)
๋ฐ๋ณต๋ฌธ์ ํน์ ์ฝ๋๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ๊ฒ ํด์ฃผ๋ ๊ตฌ๋ฌธ์ ๋๋ค.
for ๋ฌธ
์ ํด์ง ํ์๋งํผ ๋ฐ๋ณตํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
for (์ด๊ธฐํ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
// ๋ฐ๋ณต ์คํํ ์ฝ๋
}
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
์คํ ์์:
- ์ด๊ธฐํ: ๋ฐ๋ณต์ ์์ํ๊ธฐ ์ ์ ํ ๋ฒ๋ง ์คํ๋ฉ๋๋ค.
- ์กฐ๊ฑด์ ํ๊ฐ: true์ด๋ฉด ๋ธ๋ก ๋ด ์ฝ๋๋ฅผ ์คํ, false์ด๋ฉด ๋ฐ๋ณต๋ฌธ ์ข ๋ฃ
- ๋ธ๋ก ์ฝ๋ ์คํ
- ์ฆ๊ฐ์ ์คํ
- 2~4 ๋จ๊ณ ๋ฐ๋ณต
๐ ํฅ์๋ for ๋ฌธ (Enhanced for loop)
๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์ ๋ชจ๋ ์์์ ๋ํด ๋ฐ๋ณตํ ๋ ์ฌ์ฉํฉ๋๋ค.
for (์์ํ์
๋ณ์๋ช
: ๋ฐฐ์ด ๋๋ ์ปฌ๋ ์
) {
// ๋ฐ๋ณต ์คํํ ์ฝ๋
}
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
while ๋ฌธ
์กฐ๊ฑด์ด true์ธ ๋์ ๋ฐ๋ณตํฉ๋๋ค. ๋ช ๋ฒ ๋ฐ๋ณตํ ์ง ๋ชจ๋ฅผ ๋ ์ฌ์ฉํ๋ฉด ์ข์์.
while (์กฐ๊ฑด์) {
// ๋ฐ๋ณต ์คํํ ์ฝ๋
}
int count = 0;
while (count < 5) {
System.out.println("count = " + count);
count++;
}
๐ก while๋ฌธ์ ์ฌ์ฉํ ๋๋ ๋ฌดํ ๋ฃจํ์ ๋น ์ง์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
๋ฐ๋์ ์ข ๋ฃ ์กฐ๊ฑด์ ์ ํํ ์ค์ ํ๊ณ , ์กฐ๊ฑด์ ๋ณ๊ฒฝํ๋ ์ฝ๋๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
do-while ๋ฌธ
while๊ณผ ๊ฑฐ์ ๊ฐ์ง๋ง, ์กฐ๊ฑด์ ๋์ค์ ๊ฒ์ฌํฉ๋๋ค.
๐ ์ต์ ํ ๋ฒ์ ๋ฐ๋์ ์คํ๋๋ ํน์ง์ด ์์ด์.
int num = 0;
do {
System.out.println("num = " + num);
num++;
} while (num < 3);
๐ก do-while์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์์ผ ํ๋ ๊ฒฝ์ฐ์ ์ข ์ข ์ฌ์ฉ๋ฉ๋๋ค!
โ ํ๋ฆ ์ ์ด ํค์๋
๋ฐ๋ณต๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ ์คํ ํ๋ฆ์ ์ ์ดํ๋ ํค์๋์ ๋๋ค.
break
๋ฐ๋ณต๋ฌธ์ด๋ switch ๋ฌธ์ ์ฆ์ ์ข ๋ฃํ๊ณ ๋ค์ ์ฝ๋๋ก ๋์ด๊ฐ๋๋ค.
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // i๊ฐ 5์ผ ๋ ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
}
System.out.println(i);
}
// 1, 2, 3, 4๋ง ์ถ๋ ฅ๋จ
continue
ํ์ฌ ๋ฐ๋ณต์ ๊ฑด๋๋ฐ๊ณ , ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋๋ค.
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // i๊ฐ ์ง์๋ฉด ์๋ ์ฝ๋๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋ค์ ๋ฐ๋ณต์ผ๋ก
}
System.out.println(i);
}
// 1, 3, 5, 7, 9๋ง ์ถ๋ ฅ๋จ
๐ ๋ ์ด๋ธ(Label)๊ณผ ํจ๊ป ์ฌ์ฉํ๊ธฐ
์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ์์๋ ๋ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ํน์ ๋ฐ๋ณต๋ฌธ์ ๋์์ผ๋ก break๋ continue๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
outer: // ๋ ์ด๋ธ ์ ์
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i * j > 4) {
break outer; // outer ๋ ์ด๋ธ์ด ๋ถ์ ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃ
}
System.out.println(i + " * " + j + " = " + (i * j));
}
}
๐ ๋ง๋ฌด๋ฆฌ
์ค๋์ Java์ ์ ์ด๋ฌธ(์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ)๊ณผ ํ๋ฆ ์ ์ด ํค์๋(break, continue)์ ๋ํด ์์๋ณด์์ต๋๋ค.
์ด๋ฌํ ์ ์ด๋ฌธ์ ํ๋ก๊ทธ๋จ์ ๋ก์ง์ ๊ตฌํํ๋ ํต์ฌ ์์๋ก, ๋ค์ํ ์ํฉ์ ๋ง๊ฒ ์ ์ ํ ํ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์กฐ๊ฑด๋ฌธ์ ํตํด ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝ๋๋ฅผ ์คํํ๊ณ , ๋ฐ๋ณต๋ฌธ์ ํตํด ๋ฐ๋ณต์ ์ธ ์์ ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
break์ continue ํค์๋๋ฅผ ํ์ฉํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ๋ฆ์ ๋์ฑ ์ ๊ตํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
๋ค์ ์๊ฐ์๋ Java์ ๋ฐฐ์ด๊ณผ ์ปฌ๋ ์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ถ๊ธํ ๋ด์ฉ์ด๋ ์ถ๊ฐ๋ก ์๊ณ ์ถ์ ๊ฐ๋ ์ด ์๋ค๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ ๐