[스파르타 코딩] 조건문 (switch-case)

김동현·2022년 8월 22일
0

💡조건문이란

  • 조건을 판별하는 제어문으로 순차적으로 모든 코드들이 실행되는 것이 아닌 특정 조건에서는 특정 코드만 실행할 수 있게 도와준다.

💡switch-case

// 기본적인 swtich-case문의 구조
switch(variable){

	case condition:
    
    case condition:
}

  • variable이 condition과 일치할 경우 switch 블록의 끝까지 실행한다.
  • switch 블록의 끝까지 실행을 하지 않고 한 case문만 실행하기 위해 break;를 사용한다.
public class Main {
    public static void main(String[] args) {

        String str = "hi";

        switch(str){
            case "hello":
                System.out.println("hello");
            case "hi":
                System.out.println("hi");
            case "Hello":
                System.out.println("Hello");
        }
    }
}

// break;가 없어 "hi"만 출력되는 것이 아닌 "Hello"까지 출력된다.

  • default:항상 참을 의미한다. 따라서 switch에 어떠한 변수가 들어와도 default:는 항상 실행된다.(만약 varaible과 일치하는 condition이 default 아래 있는 경우는 출력하지 않음)
  • 일반적으로 switch-case문에 가장 하단부에 넣어 모든 케이스가 해당되지 않을 경우 실행시키기 위해 많이 사용된다.
public class Main {
    public static void main(String[] args) {

        String str = "bye";

        switch(str){
            case "hello":
                System.out.println("hello");
            case "hi":
                System.out.println("hi");
            case "Hello":
                System.out.println("Hello");
            default:
                System.out.println("일치하는게 없다."); 
        }
    }
}
// 출력값 일치하는게 없다. -> 위 case 모두 "bye"에 해당되지 않으므로 default의 값 출력

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

        String str = "bye";

        switch(str) {
            case "hello":
                System.out.println("hello");
            default:
                System.out.println("항상 실행된다.");
            case "hi":
                System.out.println("hi");
            case "Hello":
                System.out.println("Hello");
        }
    }
}
// 출력값 항상 실행된다. hi Hello
// variable과 condition이 일치하지 않는 경우 default는 항상 실행되기 때문에 default부터 끝까지 출력된다.
  • variable과 condition의 자료형이 같아야 한다. (variable과 condition의 자료형이 다르면 컴파일 에러!)
  • variable에는 정수문자(열)이 올 수 있다.
  • condition의 값들은 중복이 안된다.
profile
오늘은 오늘

0개의 댓글