Day 05(21.09.06) - Gomserker/Java-101 GitHub Wiki

05. ์กฐ๊ฑด๋ฌธ - if

1. if๋ฌธ

if (condition) {
  condition์ด true์ผ๋•Œ์˜ ์‹คํ–‰๋ฌธ1
  condition์ด true์ผ๋•Œ์˜ ์‹คํ–‰๋ฌธ2
  ...
}

์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์กฐ๊ฑด์‹์—๋Š” true ๋˜๋Š” false ๊ฐ’์„ ์‚ฐ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์‹์ด๋‚˜ boolean ๋ณ€์ˆ˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์กฐ๊ฑด์‹์ด true์ผ ๋•Œ, ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๋ฉฐ, false์ผ ๋• ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ€ป ๋ธ”๋ก์ด๋ž€ ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๊ตฌ์—ญ์„ ๋งํ•œ๋‹ค.

public class IfExample {
  public static void main(String[] args) {
    int score = 93;

    if(score >= 90) {     //score์˜ ๊ฐ’์ด 93์ด๋ฏ€๋กœ, condition์˜ ๊ฐ’์ด true์ด๋‹ค.
      System.out.println("์ ์ˆ˜๊ฐ€ 90๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค."); //condition์˜ ๊ฐ’์ด true์ด๋ฏ€๋กœ ์•„๋ž˜ ์‹คํ–‰๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.
      System.out.println("๋“ฑ๊ธ‰์€ A์ž…๋‹ˆ๋‹ค.");
    }
  }
}

2. if-else๋ฌธ

if๋ฌธ์€ else ๋ธ”๋ก๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด condition์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์‹คํ–‰ ๋ธ”๋ก์„ ์„ ํƒํ•œ๋‹ค.
if๋ฌธ์˜ ์กฐ๊ฑด์ด true์ด๋ฉด, if๋ฌธ์˜ ๋ธ”๋ก์ด ์‹คํ–‰๋˜๊ณ , ์กฐ๊ฑด์‹์ด false์ด๋ฉด else ๋ธ”๋ก์ด ์‹คํ–‰๋œ๋‹ค.
์ฆ‰, condition์˜ true-false ์—ฌ๋ถ€์— ๋”ฐ๋ผ if ๋ธ”๋ก, else ๋ธ”๋ก ์ค‘ ํ•˜๋‚˜์˜ ๋ธ”๋ก๋งŒ ์‹คํ–‰ํ•˜๊ณ  ์ „์ฒด if๋ฌธ์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋œ๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์ด๊ฑฐ ์•„๋‹ˆ๋ฉด ์ €๊ฑฐ๋ผ๋Š” ์†Œ๋ฆฌ๋‹ค.

public class IfElseExample {
  public static void main(String[] args) {
    int score = 85;

    if(score >= 90) {     
      System.out.println("์ ์ˆ˜๊ฐ€ 90๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค."); 
      System.out.println("๋“ฑ๊ธ‰์€ A์ž…๋‹ˆ๋‹ค.");
    } else { 
//condition์˜ ๊ฐ’์ด false์ผ ๋•Œ, ์ด else ๋ธ”๋ก์ด ์‹คํ–‰๋œ๋‹ค. 
//์ด ๊ฒฝ์šฐ์—” score์˜ ๊ฐ’์ด 85์ ์œผ๋กœ ์„ ์–ธ๋˜์—ˆ๊ธฐ์— condition์˜ ๊ฐ’์ด false, ๋”ฐ๋ผ์„œ else ๋ธ”๋ก์ด ๊ตฌ๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.
      System.out.println("์ ์ˆ˜๊ฐ€ 90๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.");
      System.out.println("๋“ฑ๊ธ‰์€ B์ž…๋‹ˆ๋‹ค.");
    }
  }
}

3. if-else if-else๋ฌธ

์กฐ๊ฑด๋ฌธ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ผ๋•Œ, ์ฒ˜์Œ if๋ฌธ์˜ ์กฐ๊ฑด์‹์ด false์ผ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์‹คํ–‰ ๋ธ”๋ก์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.
if ๋ธ”๋ก์˜ ๋์— else if๋ฌธ์„ ๋ถ™์ด๋ฉด ๋˜๋Š”๋ฐ, else if ๋ฌธ์˜ ๊ฐฏ์ˆ˜์—๋Š” ์ œํ•œ์ด ์—†์œผ๋ฉฐ, true๊ฐ€ ๋˜๋Š” ๋ธ”๋ก๋งŒ ์‹คํ–‰ํ•˜๊ณ  ์ „์ฒด if๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.
๋งˆ์ง€๋ง‰์—๋Š” else if๊ฐ€ ์•„๋‹Œ else ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ชจ๋“  ์กฐ๊ฑด์‹์ด false์ผ ๊ฒฝ์šฐ else ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ  ์ „์ฒด if๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.

public class IfElseIfElseExample {
  public static void main(String[] args) {
    int score = 75;

    if(score >= 90) { //score๊ฐ€ 90 ์ดํ•˜ ์ด๋ฏ€๋กœ false, ์ด ๋ธ”๋ก์€ ์‹คํ–‰๋˜์ง€ ์•Š์Œ.    
      System.out.println("์ ์ˆ˜๊ฐ€ 90~100์ž…๋‹ˆ๋‹ค."); 
      System.out.println("๋“ฑ๊ธ‰์€ A์ž…๋‹ˆ๋‹ค.");
    } else if(score >= 80) { //score๊ฐ€ 80 ์ดํ•˜ ์ด๋ฏ€๋กœ false, ์ด ๋ธ”๋ก์€ ์‹คํ–‰๋˜์ง€ ์•Š์Œ.
      System.out.println("์ ์ˆ˜๊ฐ€ 80~89์ž…๋‹ˆ๋‹ค.");
      System.out.println("๋“ฑ๊ธ‰์€ B์ž…๋‹ˆ๋‹ค.");
    } else if(score >= 70) { //score๊ฐ€ 70 ์ด์ƒ์ด๋ฏ€๋กœ true, ๋”ฐ๋ผ์„œ ์ด ๋ธ”๋ก์ด ์‹คํ–‰๋จ.
      System.out.println("์ ์ˆ˜๊ฐ€ 70~79์ž…๋‹ˆ๋‹ค.");
      System.out.println("๋“ฑ๊ธ‰์€ C์ž…๋‹ˆ๋‹ค.");
    } else { //90์ด์ƒ, 80์ด์ƒ, 70์ด์ƒ ์ „๋ถ€ ํ•ด๋‹น๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ด ๋ธ”๋ก์ด ์‹คํ–‰๋จ.
      System.out.println("์ ์ˆ˜๊ฐ€ 70 ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.");
      System.out.println("๋“ฑ๊ธ‰์€ D์ž…๋‹ˆ๋‹ค.");
    }
  }
}

ํ•˜์ง€๋งŒ if else๋ฌธ์—๋Š” ๊ตฌ์กฐ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ,

์ •์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ๋ช‡์˜ ๋ฐฐ์ˆ˜์ธ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.  
if (a % 5 == 0) {
	System.out.println(a + "๋Š” 5์˜ ๋ฐฐ์ˆ˜");
		} else if (a % 2 == 0) {
	System.out.println(a + "๋Š” 2์˜ ๋ฐฐ์ˆ˜");
		} else if (a % 4 == 0) {
	System.err.println(a + "๋Š” 4์˜ ๋ฐฐ์ˆ˜");
		} else {
	System.out.println("ํ•ด๋‹น ์—†์Œ");
		}

์ด์™€ ๊ฐ™์ด ์ž‘์„ฑํ•  ๊ฒฝ์šฐ, 4๋ฅผ ์ž…๋ ฅํ•˜๋ฉด 2์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ธ”๋ก์— ๊ฑธ๋ ค์„œ 4์˜ ๋ฐฐ์ˆ˜๋ผ๋Š” ๋‹ต์„ ์–ป์ง€ ๋ชปํ•œ๋‹ค.
์ฆ‰, ๊ณต๋ฐฐ์ˆ˜์™€ ๊ฐ™์ด ๊ต์ง‘ํ•ฉ์ด ์žˆ๋Š” ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ if-else๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๋‹นํžˆ ๋ณต์žกํ•ด์ง€๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ๋‹ค์ค‘ if๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
๋‹ค์ค‘ if๋ฌธ์ด๋ผ๊ณ  ํ•ด์„œ ํŠน๋ณ„ํ•œ ๊ฑด ์—†๊ณ , if-else๋ฌธ์ด ์•„๋‹Œ ์•„๋ž˜์™€ ๊ฐ™์ด if ๋ธ”๋ก์„ ๋ณต์ˆ˜ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

if(a % 2 == 0) {
	System.out.println(a + "๋Š” 2์˜ ๋ฐฐ์ˆ˜");
	}
		
if (a % 4 == 0) {
	System.out.println(a + "๋Š” 4์˜ ๋ฐฐ์ˆ˜");
	}

4. ์ค‘์ฒฉ if๋ฌธ

if๋ฌธ์˜ ๋ธ”๋ก ๋‚ด๋ถ€์— ๋˜ ๋‹ค๋ฅธ if๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ.
์ค‘์ฒฉ์˜ ๋‹จ๊ณ„์—๋Š” ์ œํ•œ์ด ์—†์œผ๋ฏ€๋กœ ์‹คํ–‰ ํ๋ฆ„์„ ์ž˜ ํŒ๋‹จํ•ด์„œ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.
์ œ์–ด๋ฌธ(์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ)์€ ์„œ๋กœ ์ค‘์ฒฉ์ด ๊ฐ€๋Šฅํ•œ๋ฐ, if๋ฌธ ์•ˆ์— for๋ฌธ์„ ์ค‘์ฒฉ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๊ณ , while๋ฌธ์— if๋ฌธ์„ ์ค‘์ฒฉ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

public class CDMain4 {
  public static void main(String[] args) {
    int b = 10;
    if (b % 2 == 0) { //๋ฐ”๊นฅ์˜ if๋ฌธ์˜ condition์ด true์ผ๋•Œ
      if (b % 5 == 0) { //์ค‘์ฒฉ๋œ if๋ฌธ condition์ด true์ด๋ฉด ๋‚ด๋ถ€ ์‹คํ–‰๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.
        System.out.println(b + "๋Š” 2์˜ ๋ฐฐ์ˆ˜.");
        System.out.println(b + "๋Š” 5์˜ ๋ฐฐ์ˆ˜.");
      }
    }
  }
}

06. ์กฐ๊ฑด๋ฌธ - switch

1. switch๋ฌธ

switch(๋ณ€์ˆ˜) {
    case ๊ฐ’1:
        //๋ณ€์ˆ˜๊ฐ€ ๊ฐ’ 1์ผ ๊ฒฝ์šฐ์˜ ์‹คํ–‰๋ฌธ
      break;

    case ๊ฐ’2:
        //๋ณ€์ˆ˜๊ฐ€ ๊ฐ’ 2์ผ ๊ฒฝ์šฐ์˜ ์‹คํ–‰๋ฌธ
      break;

    default;
        //๋ณ€์ˆ˜๊ฐ€ ๋‘˜ ๋‹ค ์•„๋‹ ๊ฒฝ์šฐ์˜ ์‹คํ–‰๋ฌธ
      break;
    }

switch๋ฌธ ๋˜ํ•œ if๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์กฐ๊ฑด ์ œ์–ด๋ฌธ์ด๋‹ค.
ํ•˜์ง€๋งŒ if๋ฌธ์€ condition์˜ ๊ฐ’์ด true์ผ ๊ฒฝ์šฐ์— ๋ธ”๋ก ๋‚ด๋ถ€์˜ ์‹คํ–‰๋ฌธ์„ ์‹คํ–‰ํ•˜์ง€๋งŒ, switch๋ฌธ์€ ๋ณ€์ˆ˜๊ฐ€ ์–ด๋–ค ๊ฐ’์„ ๊ฐ–๋А๋ƒ์— ๋”ฐ๋ผ ์‹คํ–‰๋ฌธ์ด ์„ ํƒ๋œ๋‹ค.
์œ„์˜ switch๋ฌธ ์˜ˆ์‹œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ, switch๋ฌธ์€ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ–๋Š” case๋กœ ๊ฐ€์„œ ์‹คํ–‰๋ฌธ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค. ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ–๋Š” case๊ฐ€ ์—†์œผ๋ฉด default์˜ ์‹คํ–‰๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.
์•„๋ž˜๋Š” ๋ฉ”๋‰ด ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„, ํ•ด๋‹น ๋ฒˆํ˜ธ์˜ ๋ฉ”๋‰ด๋ช…์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋‹ค.

import java.util.Scanner;

public class CDMain5_SwitchCase {
  public static void main(String[] args) {

    System.out.print("๋ช‡ ๋ฒˆ ๋ฉ”๋‰ด? (1~4): ");
      int menu = input.nextInt(); //์ž…๋ ฅ ๊ฐ’์„ ๋ฐ›์Œ
	
     switch (menu) {
      case 1: //์ž…๋ ฅ ๊ฐ’์ด 1์ผ๋•Œ
        System.out.println("์•„๋ฉ”๋ฆฌ์นด๋…ธ");
      break;
      case 2: //์ž…๋ ฅ ๊ฐ’์ด 2์ผ๋•Œ
        System.out.println("์นดํŽ˜๋ผ๋–ผ");
      break;
      case 3: //์ž…๋ ฅ ๊ฐ’์ด 3์ผ๋•Œ
        System.out.println("๋ฐ”๋‹๋ผ๋ผ๋–ผ");
      break;
      case 4: //์ž…๋ ฅ ๊ฐ’์ด 4์ผ๋•Œ
        System.out.println("๋ฏผํŠธ์ดˆ์ฝ”๋ผ๋–ผ");
      break;
      default: //1~4๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ–ˆ์„๋•Œ
        System.out.println("๊ทธ๋Ÿฐ๊ฑฐ ์—†๋‹ค");
      break;
    }
  }
}