Programming languages/Java

์กฐ๊ฑด๋ฌธ

yoooCo 2025. 5. 1. 14:12

๐ŸŒˆ ์ž๋ฐ”์˜ ์กฐ๊ฑด๋ฌธ

๐Ÿงญ ์ž๋ฐ”์˜ ์ œ์–ด ํ๋ฆ„์ด๋ž€?

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

์ด ๊ธ€์—์„œ๋Š” ๊ทธ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์กฐ๊ฑด๋ฌธ(if, switch)์— ๋Œ€ํ•ด
์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์‰ฝ๊ณ  ์žฌ๋ฏธ์žˆ๊ฒŒ ์„ค๋ช…ํ•ด ๋“œ๋ฆด๊ฒŒ์š” ๐Ÿ˜Š


โœ… 1. if ๋ฌธ โ€“ ์กฐ๊ฑด์ด ๋งž์œผ๋ฉด ์‹คํ–‰!

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์กฐ๊ฑด๋ฌธ์ž…๋‹ˆ๋‹ค.

if (์กฐ๊ฑด์‹) {
    // ์กฐ๊ฑด์ด true์ผ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ
}

๐Ÿ“Œ ์˜ˆ์ œ 1: ์˜จ๋„์— ๋”ฐ๋ผ ํ–‰๋™ ๋ฐ”๊พธ๊ธฐ

int temp = 30;

if (temp >= 28) {
    System.out.println("๋‚ ์”จ๊ฐ€ ๋ฅ๋„ค์š”! ์—์–ด์ปจ์„ ์ผœ์š”.");
}

โ†’ ์˜จ๋„๊ฐ€ 28๋„ ์ด์ƒ์ด๋ฉด ์—์–ด์ปจ์„ ์ผœ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

โš ๏ธ ๊ด„ํ˜ธ {} ์ƒ๋žต?

if (temp >= 28)
    System.out.println("๋”์›Œ์š”!");  // OK

โš ๏ธ if ๋ฌธ์—์„œ ์ค‘๊ด„ํ˜ธ {}๋Š” ํ•œ ์ค„์ผ ๋•Œ๋งŒ ์ƒ๋žต ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!

โŒ ์ž˜๋ชป๋œ ์˜ˆ์‹œ ๐Ÿ‘‡๐Ÿ‘‡๐Ÿ‘‡

if (isLogin)
    System.out.println("ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!");
    System.out.println("๋กœ๊ทธ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค."); // ํ•ญ์ƒ ์‹คํ–‰๋จ!
๐Ÿ“ฅ ์œ„์˜ ์ฝ”๋“œ์˜ ์‹ค์ œ๋™์ž‘์€ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฉ๋‹ˆ๋‹ค.
if (isLogin) {
    System.out.println("ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!");
}
System.out.println("๋กœ๊ทธ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.");

โœ… 2. if-else ๋ฌธ โ€“ ์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์œผ๋ฉด ๋Œ€์•ˆ ์‹คํ–‰!

if (์กฐ๊ฑด์‹) {
    // ์กฐ๊ฑด์ด true
} else {
    // ์กฐ๊ฑด์ด false
}

๐Ÿ“Œ ์˜ˆ์ œ 2: ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ํ™”๋ฉด

boolean isLoggedIn = false;

if (isLoggedIn) {
    System.out.println("ํ™ˆ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
} else {
    System.out.println("๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
}

โ†’ ์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์„ ๋•Œ๋„ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์–ด์š”!


โœ… 3. if - else if - else ๋ฌธ โ€“ ์—ฌ๋Ÿฌ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜ ์„ ํƒ

if (์กฐ๊ฑด1) {
    // ์กฐ๊ฑด1์ด true
} else if (์กฐ๊ฑด2) {
    // ์กฐ๊ฑด2๊ฐ€ true
} else {
    // ๋‘˜ ๋‹ค false
}

๐Ÿ“Œ ์˜ˆ์ œ 3: ์‹œํ—˜ ์ ์ˆ˜์— ๋”ฐ๋ฅธ ํ•™์  ์ถœ๋ ฅ

int score = 77;
String grade;

if (score >= 90) {
    grade = "A";
} else if (score >= 80) {
    grade = "B";
} else if (score >= 70) {
    grade = "C";
} else if (score >= 60) {
    grade = "D";
} else {
    grade = "F";
}
System.out.println("๋‹น์‹ ์˜ ํ•™์ ์€: " + grade);

โœ… else if๋Š” ํ•„์š”ํ•œ ๋งŒํผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ถ™์ผ ์ˆ˜ ์žˆ์–ด์š”!


โœ… 4. ์ค‘์ฒฉ if๋ฌธ โ€“ if๋ฌธ ์•ˆ์— ๋˜ if๋ฌธ

if (์กฐ๊ฑด1) {
    if (์กฐ๊ฑด2) {
        // ์กฐ๊ฑด1๊ณผ ์กฐ๊ฑด2 ๋ชจ๋‘ true์ผ ๋•Œ ์‹คํ–‰
    }
}

๐Ÿ“Œ ์˜ˆ์ œ 4: ๋กœ๊ทธ์ธ + ๊ด€๋ฆฌ์ž๋งŒ ์ ‘๊ทผ

boolean isLoggedIn = true;
boolean isAdmin = false;

if (isLoggedIn) {
    if (isAdmin) {
        System.out.println("๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
    } else {
        System.out.println("์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
    }
} else {
    System.out.println("๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.");
}

๐Ÿ”„ 5. switch ๋ฌธ โ€“ ๊ฐ’์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•  ๋•Œ๋งŒ ์„ ํƒ

if๋ฌธ์€ ์กฐ๊ฑด์˜ ๋ฒ”์œ„์— ๊ฐ•ํ•˜์ง€๋งŒ, switch๋Š” "๋”ฑ ์ด ๊ฐ’์ผ ๋•Œ!"๋ฅผ ๊ณ ๋ฅผ ๋•Œ ์ข‹์Šต๋‹ˆ๋‹ค.

switch (๋ณ€์ˆ˜) {
    case ๊ฐ’1:
        // ๊ฐ’1์ผ ๋•Œ ์‹คํ–‰
        break;
    case ๊ฐ’2:
        // ๊ฐ’2์ผ ๋•Œ ์‹คํ–‰
        break;
    default:
        // ์–ด๋–ค case์™€๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ
}

๐Ÿ“Œ ์˜ˆ์ œ 5: ์š”์ผ์— ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ

String day = "WED";

switch (day) {
    case "MON":
        System.out.println("์›”์š”์ผ์ž…๋‹ˆ๋‹ค. ํž˜๋‚ด์š”!");
        break;
    case "TUE":
        System.out.println("ํ™”์š”์ผ์ž…๋‹ˆ๋‹ค. ์กฐ๊ธˆ๋งŒ ๋”!");
        break;
    case "WED":
        System.out.println("์ˆ˜์š”์ผ์ž…๋‹ˆ๋‹ค. ๋ฐ˜ ์™”์–ด์š”!");
        break;
    case "THU":
        System.out.println("๋ชฉ์š”์ผ์ž…๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋!");
        break;
    case "FRI":
        System.out.println("๊ธˆ์š”์ผ์ž…๋‹ˆ๋‹ค. ๋ถˆ๊ธˆ~!");
        break;
    default:
        System.out.println("์ฃผ๋ง์ž…๋‹ˆ๋‹ค. ํ‘น ์‰ฌ์–ด์š”.");
}

โœ… break๋ฅผ ๋„ฃ์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋„ ์ญ‰ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค!

โœ… switch์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž… ์ •๋ฆฌ

ํƒ€์ž… ์ง€์› ์‹œ์  ๋น„๊ณ 
byte, short, char, int Java 1 ๊ธฐ๋ณธ ์ •์ˆ˜ํ˜• ํƒ€์ž…
enum Java 5 ์—ด๊ฑฐํ˜•
String Java 7 ๋ฌธ์ž์—ด ๋น„๊ต ์ง€์›
Integer, Character, Byte, Short Java 7 ์˜คํ† ๋ฐ•์‹ฑ ์ง€์›
long โŒ ๋ฏธ์ง€์› switch์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
Pattern Matching (๊ฐ์ฒด ํƒ€์ž…) Java 17~21 (๋ฏธ๋ฆฌ๋ณด๊ธฐโ†’์ •์‹) ํ–ฅ์ƒ๋œ switch: instanceof์™€ ์œ ์‚ฌํ•œ ๋งค์นญ

๐ŸŽ if๋ฌธ vs switch๋ฌธ ์–ธ์ œ ์“ฐ์ง€?

์ƒํ™ฉ ์ถ”์ฒœ ๋ฌธ๋ฒ•
๋ฒ”์œ„๋ฅผ ๋น„๊ตํ•  ๋•Œ (>=, < ๋“ฑ) if ๋ฌธ
๋”ฑ ์ •ํ•ด์ง„ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ switch ๋ฌธ
์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ์žˆ์„ ๋•Œ if - else if ๋ฌธ

๐Ÿ’ก ์ •๋ฆฌ

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