▶ JAVA/개념정리

[Java] 6. 조건문

휴학생감자 2022. 2. 2. 22:12

조건문 (if문, switch문)

 

조건식의 연산결과에 따라 실행할 문장이 달라지므로 실행흐름을 변경할 수 있다.

※ 블럭 내에 문장이 하나인 경우에는 괄호를 생략할 수 있다.

 

if문

가장 기본적인 조건문으로, 조건식과 블럭({ })으로 이루어져 있다.

조건식이 true이면 블럭 내의 문장들을 수행하고, false이면 수행하지 않는다.

 

★ if-else문 / if-else if문

else 블럭은 조건식의 결과가 false일 때 수행하며, 생략이 가능하다.

else if문은 조건식이 여러 개인 경우에 사용한다. 

 

또한, if문은 다른 if문에 포함시키는 중첩이 가능하다.

중첩의 횟수에는 제한이 없으나, 조건문을 되도록 간단하게 작성해야 함에 유의하는 것이 좋다.

 

import java.util.Scanner;

public class exCode {
    public static void main(String[] args) {
        int score;
        char grade = ' ';
        char sub = '0';

        System.out.print("점수를 입력하세요 : ");

        Scanner scan = new Scanner(System.in);
        score = scan.nextInt();

        if(score>=90) {
            grade = 'A';
            if(score>=95) {       //if문 중첩
                sub = '+';
            }
        }

        else if(score>= 80){
            grade = 'B';
             if(score>=85){
                 sub = '+';
             }
        }
        else {                   //else문은 조건식이 없음
            grade = 'C';
        }

        System.out.printf("학생의 점수는 %d이며, 학점은 %c%c입니다.", score, grade, sub);
    }
}

[실행 결과]

 


 

switch문

하나의 조건식으로 많은 경우의 수를 처리할 수 있는 조건문이다.

switch문은 조건식을 계산하여 값이 일치하는 case문으로 이동하여 이후의 문장들을 수행한다.

일치하는 case문이 없는 경우에는 default문을 수행하며, break문을 만나면 조건문을 빠져나간다.

 

if문과 동일하게 중첩이 가능하며, 중첩 시 break문을 까먹지 않도록 주의해야 한다!

 

그러나, 제약조건이 있으므로 if문보다 덜 사용되는 편이다.

 

※ 조건

     1. switch문의 조건식 결과는 정수 or 문자열이어야 한다.

     2. case문의 값은 정수 상수만 가능하며, 중복되면 안된다.

 

import java.util.Scanner;

public class exCode {
    public static void main(String[] args) {
        System.out.print("오늘은 몇월 입니까? ");

        Scanner scan = new Scanner(System.in);
        int month = scan.nextInt();

        switch (month) {
            case 12:
                System.out.println("현재 계절은 겨울입니다.");
                break;
            case 1:
                System.out.println("현재 계절은 겨울입니다.");
                break;
            case 2:
                System.out.println("현재 계절은 겨울입니다.");
                break;
            case 3: case 4: case 5:          //위와 같이 중복되는 case는 간결하게 줄일 수 있다.
                System.out.println("현재 계절은 봄입니다.");
                break;
            case 6: case 7: case 8:
                System.out.println("현재 계절은 여름입니다.");
                break;
            case 9: case 10: case 11:
                System.out.println("현재 계절은 가을입니다.");
                break;
        }

    }
}

[실행 결과]