** ๐Ÿ“Œ 1๋‹จ๊ณ„ ๋ณธ๋ฌธ: ์ž๋ฐ” if ๋ฌธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…**


1. if ๋ฌธ์ด๋ž€?


์˜ˆ์‹œ: if ๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

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

์˜ˆ์‹œ: if ๋ฌธ ์‚ฌ์šฉ๋ฒ•

int age = 20;
if (age >= 18) {
    System.out.println("์„ฑ์ธ์ž…๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์‹ ํ˜ธ๋“ฑ


2. if-else ๋ฌธ์ด๋ž€?


์˜ˆ์‹œ: if-else ๋ฌธ ์‚ฌ์šฉ๋ฒ•

int age = 16;
if (age >= 18) {
    System.out.println("์„ฑ์ธ์ž…๋‹ˆ๋‹ค.");
} else {
    System.out.println("๋ฏธ์„ฑ๋…„์ž์ž…๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์‹ ํ˜ธ๋“ฑ + ํšก๋‹จ๋ณด๋„ ์ง€ํ‚ด์ด


3. if-else if-else ๋ฌธ์ด๋ž€?


์˜ˆ์‹œ: if-else if-else ๋ฌธ ์‚ฌ์šฉ๋ฒ•

int score = 85;

if (score >= 90) {
    System.out.println("A ํ•™์ ");
} else if (score >= 80) {
    System.out.println("B ํ•™์ ");
} else if (score >= 70) {
    System.out.println("C ํ•™์ ");
} else {
    System.out.println("F ํ•™์ ");
}

๐Ÿ”น ๋น„์œ : ํ•™๊ต ์„ฑ์ ํ‘œ


์ค‘์š”! ์กฐ๊ฑด ๊ฒ€์‚ฌ ์ˆœ์„œ


์กฐ๊ฑด์ด ๊ฒน์น  ๋•Œ ์ฃผ์˜์‚ฌํ•ญ

int num = 10;

if (num > 5) {
    System.out.println("5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.");
} else if (num > 8) {
    System.out.println("8๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.");
}

4. ์ค‘์ฒฉ if ๋ฌธ์ด๋ž€?


์˜ˆ์‹œ: ์ค‘์ฒฉ if ๋ฌธ ์‚ฌ์šฉ๋ฒ•

int age = 20;
boolean hasTicket = true;

if (age >= 18) {
    if (hasTicket) {
        System.out.println("์˜ํ™”๊ด€ ์ž…์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.");
    }
}

์ค‘์ฒฉ ๋Œ€์‹  ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(&&) ์‚ฌ์šฉํ•˜๊ธฐ

if (age >= 18 && hasTicket) {
    System.out.println("์˜ํ™”๊ด€ ์ž…์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.");
}

5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


โšก 2๋‹จ๊ณ„ ๋ณธ๋ฌธ: if-else ๋ฌธ ์„ฑ๋Šฅ ์ตœ์ ํ™”


1. ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ if-else ์‚ฌ์šฉ๋ฒ•


์˜ˆ์‹œ: ์ตœ์ ํ™” ์ „

int num = 1;

if (num == 3) {
    System.out.println("์ˆซ์ž๋Š” 3์ž…๋‹ˆ๋‹ค.");
} else if (num == 2) {
    System.out.println("์ˆซ์ž๋Š” 2์ž…๋‹ˆ๋‹ค.");
} else if (num == 1) {
    System.out.println("์ˆซ์ž๋Š” 1์ž…๋‹ˆ๋‹ค.");
}

์˜ˆ์‹œ: ์ตœ์ ํ™” ํ›„

int num = 1;

if (num == 1) {
    System.out.println("์ˆซ์ž๋Š” 1์ž…๋‹ˆ๋‹ค.");
} else if (num == 2) {
    System.out.println("์ˆซ์ž๋Š” 2์ž…๋‹ˆ๋‹ค.");
} else if (num == 3) {
    System.out.println("์ˆซ์ž๋Š” 3์ž…๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์ถœ์ž…๋ฌธ ๊ฒ€์‚ฌ


2. if-else if-else์—์„œ switch ๋ฌธ์œผ๋กœ ์ตœ์ ํ™”


if-else if-else ๋ฌธ ์˜ˆ์‹œ

String fruit = "์‚ฌ๊ณผ";

if (fruit.equals("์‚ฌ๊ณผ")) {
    System.out.println("์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.");
} else if (fruit.equals("๋ฐ”๋‚˜๋‚˜")) {
    System.out.println("๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.");
} else if (fruit.equals("๋”ธ๊ธฐ")) {
    System.out.println("๋”ธ๊ธฐ์ž…๋‹ˆ๋‹ค.");
} else {
    System.out.println("์•Œ ์ˆ˜ ์—†๋Š” ๊ณผ์ผ์ž…๋‹ˆ๋‹ค.");
}

switch ๋ฌธ์œผ๋กœ ์ตœ์ ํ™”

String fruit = "์‚ฌ๊ณผ";

switch (fruit) {
    case "์‚ฌ๊ณผ" -> System.out.println("์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.");
    case "๋ฐ”๋‚˜๋‚˜" -> System.out.println("๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.");
    case "๋”ธ๊ธฐ" -> System.out.println("๋”ธ๊ธฐ์ž…๋‹ˆ๋‹ค.");
    default -> System.out.println("์•Œ ์ˆ˜ ์—†๋Š” ๊ณผ์ผ์ž…๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ ์ธต ์„ ํƒ


3. if ๋ฌธ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

1) ์‚ผํ•ญ ์—ฐ์‚ฐ์ž (? :) ์‚ฌ์šฉํ•˜๊ธฐ

int age = 20;
String result = (age >= 18) ? "์„ฑ์ธ" : "๋ฏธ์„ฑ๋…„์ž";
System.out.println(result);  // ์ถœ๋ ฅ: ์„ฑ์ธ

๐Ÿ”น ๋น„์œ : ์Šคํ‹ฐ์ปค ๋ถ™์ด๊ธฐ


2) ๋‹คํ˜•์„ฑ(Polymorphism)์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ


์˜ˆ์‹œ: ๋‹คํ˜•์„ฑ์œผ๋กœ if ๋ฌธ ์ œ๊ฑฐ

abstract class Animal {
    abstract void makeSound();
}

class Dog extends Animal {
    void makeSound() { System.out.println("๋ฉ๋ฉ"); }
}

class Cat extends Animal {
    void makeSound() { System.out.println("์•ผ์˜น"); }
}

Animal pet = new Dog();
pet.makeSound();  // ์ถœ๋ ฅ: ๋ฉ๋ฉ

๐Ÿ”น ๋น„์œ : ์•…๊ธฐ ์—ฐ์ฃผํ•˜๊ธฐ


4. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ 3๋‹จ๊ณ„ ๋ณธ๋ฌธ: ์ค‘์ฒฉ if ๋ฌธ ์ค„์ด๊ธฐ


1. ์ค‘์ฒฉ if ๋ฌธ์ด๋ž€?


์˜ˆ์‹œ: ์ค‘์ฒฉ if ๋ฌธ ์‚ฌ์šฉ๋ฒ•

int age = 20;
boolean hasTicket = true;

if (age >= 18) {
    if (hasTicket) {
        System.out.println("์˜ํ™”๊ด€ ์ž…์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.");
    }
}

๐Ÿ”น ๋น„์œ : ์ด์ค‘ ์ž ๊ธˆ ์žฅ์น˜


2. ์ค‘์ฒฉ if ๋ฌธ์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•


๋ฐฉ๋ฒ• 1: ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(&&) ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ”น ๋น„์œ : ํ•œ ๋ฒˆ์— ๋‘ ๊ฐ€์ง€ ํ™•์ธ


๋ฐฉ๋ฒ• 2: return์ด๋‚˜ break ์‚ฌ์šฉํ•˜๊ธฐ


์˜ˆ์‹œ: return์œผ๋กœ ์ค‘์ฒฉ ์ค„์ด๊ธฐ

void checkAge(int age) {
    if (age < 18) {
        System.out.println("๋ฏธ์„ฑ๋…„์ž๋Š” ์ž…์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");
        return;
    }
    System.out.println("์„ฑ์ธ์ž…๋‹ˆ๋‹ค. ์ž…์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์ž…๊ตฌ์—์„œ ๋Œ๋ ค๋ณด๋‚ด๊ธฐ


์˜ˆ์‹œ: break๋กœ ์ค‘์ฒฉ ์ค„์ด๊ธฐ (๋ฐ˜๋ณต๋ฌธ์—์„œ ์‚ฌ์šฉ)

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;  // i๊ฐ€ 5์ผ ๋•Œ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ด
    }
    System.out.println(i);
}

๐Ÿ”น ๋น„์œ : ์ •ํ•ด์ง„ ๋ฒˆํ˜ธ์—์„œ ๋ฉˆ์ถ”๊ธฐ


3. if-else ๋ฌธ์„ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž(? :)๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ


์˜ˆ์‹œ: ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

int age = 20;
String result = (age >= 18) ? "์„ฑ์ธ" : "๋ฏธ์„ฑ๋…„์ž";
System.out.println(result);  // ์ถœ๋ ฅ: ์„ฑ์ธ

๐Ÿ”น ๋น„์œ : ๋นจ๊ฐ„ ์Šคํ‹ฐ์ปค, ํŒŒ๋ž€ ์Šคํ‹ฐ์ปค


4. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ


๐Ÿ“ ํ•œ๋ˆˆ์— ๋ณด๋Š” ์š”์•ฝ



๐Ÿ”„ 4๋‹จ๊ณ„ ๋ณธ๋ฌธ: switch ๋ฌธ๊ณผ if-else if-else ๋น„๊ต


1. switch ๋ฌธ์ด๋ž€?


switch ๋ฌธ ๊ธฐ๋ณธ ๊ตฌ์กฐ

switch (๋ณ€์ˆ˜) {
    case ๊ฐ’1 -> ์‹คํ–‰ ์ฝ”๋“œ;
    case ๊ฐ’2 -> ์‹คํ–‰ ์ฝ”๋“œ;
    default -> ๊ธฐ๋ณธ ์‹คํ–‰ ์ฝ”๋“œ;
}

์˜ˆ์‹œ: switch ๋ฌธ ์‚ฌ์šฉ๋ฒ•

int day = 3;

switch (day) {
    case 1 -> System.out.println("์›”์š”์ผ");
    case 2 -> System.out.println("ํ™”์š”์ผ");
    case 3 -> System.out.println("์ˆ˜์š”์ผ");
    case 4 -> System.out.println("๋ชฉ์š”์ผ");
    case 5 -> System.out.println("๊ธˆ์š”์ผ");
    default -> System.out.println("์ฃผ๋ง");
}

๐Ÿ”น ๋น„์œ : ๋‹ค์ค‘ ์„ ํƒ ๋ฌธ์ œ


2. if-else if-else ๋ฌธ๊ณผ ๋น„๊ต


if-else if-else ๋ฌธ ์˜ˆ์‹œ

int day = 3;

if (day == 1) {
    System.out.println("์›”์š”์ผ");
} else if (day == 2) {
    System.out.println("ํ™”์š”์ผ");
} else if (day == 3) {
    System.out.println("์ˆ˜์š”์ผ");
} else if (day == 4) {
    System.out.println("๋ชฉ์š”์ผ");
} else if (day == 5) {
    System.out.println("๊ธˆ์š”์ผ");
} else {
    System.out.println("์ฃผ๋ง");
}

๐Ÿ”น ๋น„์œ : ์ค„ ์„œ์„œ ๊ฒ€์‚ฌ๋ฐ›๊ธฐ


switch ๋ฌธ์œผ๋กœ ์ตœ์ ํ™”

int day = 3;

switch (day) {
    case 1 -> System.out.println("์›”์š”์ผ");
    case 2 -> System.out.println("ํ™”์š”์ผ");
    case 3 -> System.out.println("์ˆ˜์š”์ผ");
    case 4 -> System.out.println("๋ชฉ์š”์ผ");
    case 5 -> System.out.println("๊ธˆ์š”์ผ");
    default -> System.out.println("์ฃผ๋ง");
}

๐Ÿ”น ๋น„์œ : ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ ๋ฒ„ํŠผ


3. switch ๋ฌธ์˜ ์žฅ์ 


4. switch ๋ฌธ์˜ ๋‹จ์ 


5. ์–ธ์ œ switch ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?


์˜ˆ์‹œ: switch ๋ฌธ์ด ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

enum Level { BEGINNER, INTERMEDIATE, ADVANCED }

Level myLevel = Level.INTERMEDIATE;

switch (myLevel) {
    case BEGINNER -> System.out.println("์ดˆ๋ณด์ž");
    case INTERMEDIATE -> System.out.println("์ค‘๊ธ‰์ž");
    case ADVANCED -> System.out.println("๊ณ ๊ธ‰์ž");
}

6. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ

๐Ÿงฉ 5๋‹จ๊ณ„ ๋ณธ๋ฌธ: ๋‹คํ˜•์„ฑ์œผ๋กœ if ๋ฌธ ๋Œ€์ฒดํ•˜๊ธฐ


1. ๋‹คํ˜•์„ฑ(Polymorphism)์ด๋ž€?


๋‹คํ˜•์„ฑ์˜ ํŠน์ง• ์š”์•ฝ


2. ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ: ๋™๋ฌผ ์šธ์Œ์†Œ๋ฆฌ


if ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ (์œ ์ง€๋ณด์ˆ˜์„ฑ ๋‚ฎ์Œ)

String animal = "๊ฐœ";

if (animal.equals("๊ฐœ")) {
    System.out.println("๋ฉ๋ฉ");
} else if (animal.equals("๊ณ ์–‘์ด")) {
    System.out.println("์•ผ์˜น");
} else if (animal.equals("์†Œ")) {
    System.out.println("์Œ๋งค");
} else {
    System.out.println("์•Œ ์ˆ˜ ์—†๋Š” ๋™๋ฌผ");
}

๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ (์œ ์ง€๋ณด์ˆ˜์„ฑ ๋†’์Œ)

// ๋ถ€๋ชจ ํด๋ž˜์Šค
abstract class Animal {
    abstract void makeSound();
}

// ์ž์‹ ํด๋ž˜์Šค - ๊ฐœ
class Dog extends Animal {
    void makeSound() { System.out.println("๋ฉ๋ฉ"); }
}

// ์ž์‹ ํด๋ž˜์Šค - ๊ณ ์–‘์ด
class Cat extends Animal {
    void makeSound() { System.out.println("์•ผ์˜น"); }
}

// ์ž์‹ ํด๋ž˜์Šค - ์†Œ
class Cow extends Animal {
    void makeSound() { System.out.println("์Œ๋งค"); }
}

// ๋ฉ”์ธ ๋ฉ”์„œ๋“œ
public class Main {
    public static void main(String[] args) {
        Animal myPet = new Dog();
        myPet.makeSound();  // ์ถœ๋ ฅ: ๋ฉ๋ฉ

        myPet = new Cat();
        myPet.makeSound();  // ์ถœ๋ ฅ: ์•ผ์˜น

        myPet = new Cow();
        myPet.makeSound();  // ์ถœ๋ ฅ: ์Œ๋งค
    }
}

์„ค๋ช…

๐Ÿ”น ๋น„์œ : ์ง€ํœ˜์ž์™€ ์•…๊ธฐ


3. ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•œ ์ด์ 


4. ๋‹คํ˜•์„ฑ์˜ ๋‹ค๋ฅธ ํ™œ์šฉ ์˜ˆ: ๊ณ„์‚ฐ๊ธฐ


if-else ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ (์œ ์ง€๋ณด์ˆ˜์„ฑ ๋‚ฎ์Œ)

String operator = "+";
int a = 10;
int b = 5;
int result;

if (operator.equals("+")) {
    result = a + b;
} else if (operator.equals("-")) {
    result = a - b;
} else if (operator.equals("*")) {
    result = a * b;
} else if (operator.equals("/")) {
    result = a / b;
} else {
    throw new IllegalArgumentException("์ž˜๋ชป๋œ ์—ฐ์‚ฐ์ž");
}

System.out.println("๊ฒฐ๊ณผ: " + result);

๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์‹œ (์œ ์ง€๋ณด์ˆ˜์„ฑ ๋†’์Œ)

// ๋ถ€๋ชจ ํด๋ž˜์Šค - ์—ฐ์‚ฐ์ž
abstract class Operator {
    abstract int calculate(int a, int b);
}

// ์ž์‹ ํด๋ž˜์Šค - ๋ง์…ˆ
class Addition extends Operator {
    int calculate(int a, int b) {
        return a + b;
    }
}

// ์ž์‹ ํด๋ž˜์Šค - ๋บ„์…ˆ
class Subtraction extends Operator {
    int calculate(int a, int b) {
        return a - b;
    }
}

// ๋ฉ”์ธ ๋ฉ”์„œ๋“œ
public class Main {
    public static void main(String[] args) {
        Operator op = new Addition();
        System.out.println(op.calculate(10, 5));  // ์ถœ๋ ฅ: 15

        op = new Subtraction();
        System.out.println(op.calculate(10, 5));  // ์ถœ๋ ฅ: 5
    }
}

5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ



โšก 6๋‹จ๊ณ„ ๋ณธ๋ฌธ: Short-Circuiting (๋‹จ์ถ• ํ‰๊ฐ€)์™€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž


1. Short-Circuiting(๋‹จ์ถ• ํ‰๊ฐ€)๋ž€?


์˜ˆ์‹œ: && ์—ฐ์‚ฐ์ž์˜ Short-Circuiting

int num = 10;

if (num > 0 && num < 5) {
    System.out.println("0๋ณด๋‹ค ํฌ๊ณ  5๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์ฒซ ๋ฒˆ์งธ ๋ฌธ์—์„œ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋‹ค์Œ ๋ฌธ์„ ์—ด์ง€ ์•Š์Œ


์˜ˆ์‹œ: || ์—ฐ์‚ฐ์ž์˜ Short-Circuiting

int num = 10;

if (num > 20 || num < 15) {
    System.out.println("20๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ 15๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์ฒซ ๋ฒˆ์งธ ๋ฌธ์—์„œ ํ†ต๊ณผํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ ๋ฌธ์€ ์—ด ํ•„์š” ์—†์Œ


2. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์˜ ํŠน์ง• ์š”์•ฝ

์—ฐ์‚ฐ์ž ์„ค๋ช… Short-Circuiting ์˜ˆ์‹œ
&& (AND) ๋ชจ๋‘ ์ฐธ์ผ ๋•Œ๋งŒ ์ฐธ ์™ผ์ชฝ์ด ๊ฑฐ์ง“์ด๋ฉด ์˜ค๋ฅธ์ชฝ ์ƒ๋žต a > 0 && b > 0
|| (OR) ๋‘˜์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด ์ฐธ ` (OR)** a > 0 || b > 0
! (NOT) ์ฐธ โ†’ ๊ฑฐ์ง“, ๊ฑฐ์ง“ โ†’ ์ฐธ ์—†์Œ !(a > 0)

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์˜ ํ‰๊ฐ€ ์ˆœ์„œ


์˜ˆ์‹œ: ์ˆœ์„œ์— ๋”ฐ๋ฅธ Short-Circuiting

int num = 10;

if (num > 0 && num++ < 20) {
    System.out.println("์กฐ๊ฑด์ด ์ฐธ์ž…๋‹ˆ๋‹ค.");
}
System.out.println(num);  // ์ถœ๋ ฅ: 11

int num = -10;

if (num > 0 && num++ < 20) {
    System.out.println("์กฐ๊ฑด์ด ์ฐธ์ž…๋‹ˆ๋‹ค.");
}
System.out.println(num);  // ์ถœ๋ ฅ: -10

๐Ÿ”น ๋น„์œ : ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ด ์ž ๊ฒจ ์žˆ์œผ๋ฉด ๋‘ ๋ฒˆ์งธ ๋ฌธ์„ ์—ด์ง€ ์•Š์Œ


3. Short-Circuiting์œผ๋กœ ์ฝ”๋“œ ์ตœ์ ํ™”ํ•˜๊ธฐ


์˜ˆ์‹œ: NullPointerException ๋ฐฉ์ง€

String str = null;

if (str != null && str.length() > 0) {
    System.out.println("๋ฌธ์ž์—ด ๊ธธ์ด: " + str.length());
}

๐Ÿ”น ๋น„์œ : ๋ฌธ์ด ๋‹ซํ˜€ ์žˆ์œผ๋ฉด ์•ˆ์ชฝ ๋ฐฉ์€ ๋ณด์ง€ ์•Š์Œ


4. Short-Circuiting์˜ ์ฃผ์˜์ 


์˜ˆ์‹œ: Short-Circuiting์˜ ์ฃผ์˜์ 

int num = 10;

if (num > 20 && ++num < 15) {
    System.out.println("์กฐ๊ฑด์ด ์ฐธ์ž…๋‹ˆ๋‹ค.");
}
System.out.println(num);  // ์ถœ๋ ฅ: 10

5. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ



๐ŸŽ“ 7๋‹จ๊ณ„ ๋ณธ๋ฌธ: ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ - ์ž๋ฐ” if ๋ฌธ ์ตœ์ ํ™”


1. ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์กฐ๊ฑด์„ ๋จผ์ € ๋ฐฐ์น˜ํ•˜๊ธฐ


์˜ˆ์‹œ: ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์กฐ๊ฑด์„ ๋จผ์ € ๋ฐฐ์น˜

int num = 1;

if (num == 1) {
    System.out.println("์ˆซ์ž๋Š” 1์ž…๋‹ˆ๋‹ค.");
} else if (num == 2) {
    System.out.println("์ˆซ์ž๋Š” 2์ž…๋‹ˆ๋‹ค.");
} else if (num == 3) {
    System.out.println("์ˆซ์ž๋Š” 3์ž…๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์ถœ์ž…๋ฌธ ๊ฒ€์‚ฌ


2. switch ๋ฌธ์œผ๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ


์˜ˆ์‹œ: switch ๋ฌธ์œผ๋กœ ์ตœ์ ํ™”

String fruit = "์‚ฌ๊ณผ";

switch (fruit) {
    case "์‚ฌ๊ณผ" -> System.out.println("์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.");
    case "๋ฐ”๋‚˜๋‚˜" -> System.out.println("๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.");
    case "๋”ธ๊ธฐ" -> System.out.println("๋”ธ๊ธฐ์ž…๋‹ˆ๋‹ค.");
    default -> System.out.println("์•Œ ์ˆ˜ ์—†๋Š” ๊ณผ์ผ์ž…๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ ๋ฒ„ํŠผ


3. ์ค‘์ฒฉ if ๋ฌธ ์ตœ์†Œํ™”ํ•˜๊ธฐ


์˜ˆ์‹œ: ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋กœ ์ค‘์ฒฉ ์ค„์ด๊ธฐ

int age = 20;
boolean hasTicket = true;

if (age >= 18 && hasTicket) {
    System.out.println("์˜ํ™”๊ด€ ์ž…์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.");
}

๐Ÿ”น ๋น„์œ : ํ•œ ๋ฒˆ์— ๋‘ ๊ฐ€์ง€ ํ™•์ธ


4. ๋‹คํ˜•์„ฑ(Polymorphism)์œผ๋กœ ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๋†’์ด๊ธฐ


์˜ˆ์‹œ: ๋‹คํ˜•์„ฑ์œผ๋กœ if ๋ฌธ ์ œ๊ฑฐ

abstract class Animal {
    abstract void makeSound();
}

class Dog extends Animal {
    void makeSound() { System.out.println("๋ฉ๋ฉ"); }
}

class Cat extends Animal {
    void makeSound() { System.out.println("์•ผ์˜น"); }
}

Animal pet = new Dog();
pet.makeSound();  // ์ถœ๋ ฅ: ๋ฉ๋ฉ

๐Ÿ”น ๋น„์œ : ์•…๊ธฐ ์—ฐ์ฃผํ•˜๊ธฐ


5. Short-Circuiting(๋‹จ์ถ• ํ‰๊ฐ€)๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”


์˜ˆ์‹œ: Short-Circuiting(๋‹จ์ถ• ํ‰๊ฐ€)

String str = null;

if (str != null && str.length() > 0) {
    System.out.println("๋ฌธ์ž์—ด ๊ธธ์ด: " + str.length());
}

๐Ÿ”น ๋น„์œ : ๋ฌธ์ด ๋‹ซํ˜€ ์žˆ์œผ๋ฉด ์•ˆ์ชฝ ๋ฐฉ์€ ๋ณด์ง€ ์•Š์Œ


6. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ