[Java] 조건문 (if, switch)

<p>[Java] 조건문 (if, switch)

자바의 조건문에 대해 알아보자.

프로그램의 기본적인 흐름을 바꾸는 역할을 하는 문장을 제어문이라 한다.
제어문에는 조건문과 반복문이 있는데, 조건문에 대해 먼저 알아보자

if문

가장 기본적인 조건문.
조건이 참일 경우에 문장을 실행시키기 위한 조건문이다.

if문의 기본 구조

if (조건식) {
    //조건식이 참일 때 수행될 문장
}

()안의 조건식이 참일 경우에 {}안의 문장이 실행된다. {}안 문장이 단 하나 뿐일 경우에는 {}를 생략하고 사용 가능하다.

if문 사용 예제

int num1 = 10;
int num2 = 20;
if (num1 < num2) {                      //()안 비교값이 참일 경우 if문 실행
    System.out.println("num1이 num2보다 작다.");
}

boolean result = num1 < num2;           //result가 true값일 경우 if문 실행
if (result) {
    System.out.println("num1이 num2보다 작다.");
}

if-else문

if문의 변형으로 기본 if문에 ‘else’를 추가한 것이다.
else의 뜻은 ‘그 밖에, 또 다른’으로 if문의 조건이 참이 아닌 경우에 문장을 실행시킨다.

if-else문의 기본 구조

if (조건식) {
    //조건식이 참일 때 수행될 문장
} else {
    //조건식이 거짓일 때 수행될 문장
}

if문의 경우 조건이 거짓일 경우 if문이 실행되지 않고 지나가지만,
if-else문은 조건이 거짓이면 if를 지나 else문이 실행된다.

if-else문 사용 예제

int num1 = 10;
int num2 = 20;
if (num1 > num2) {
	System.out.println("num1이 num2보다 크다.");
} else {
	System.out.println("num1이 num2보다 작거나 같다.");
}

if-else if문

if-else문에서 if를 추가해 조건을 여러개 부여할 수 있는 조건문이다.
if-else문에서는 조건 하나만 가지고 참, 거짓으로 구분하였지만
if-else if문에서는 여러가지 조건을 가지고 이용할 수 있다.

if-else if문의 기본 구조

if (조건식1) {
    //조건식1가 참일 때 수행될 문장              
} else if (조건식2) {
    //조건식2가 참일 때 수행될 문장
} else if (조건식3) {                   //여러 개의 else if를 사용할 수 있다.
    //조건식3이 참일 때 수행될 문장
} else {
    //위 조건들을 모두 만족하지 않을때 수행될 문장
}

위의 구조처럼 여러 개의 else if를 통해 좀 더 세부적인 조건을 이용할 수 있다.

if-else if문 사용 예제


int kor = 150;
int eng = 90;
int math = 50;
int tot = 0; //합계(총점)
int avg = 0; //평균

//총점 구하기(출력)
tot = kor + eng + math;

//평균 구하기(출력)
avg = tot / 3;
		
if (avg >= 90) {
	System.out.println("A 학점");
} else if (avg >= 80) {
	System.out.println("B 학점");
} else if (avg >= 70) {
	System.out.println("C 학점");
} else if (avg >= 60) {
	System.out.println("D 학점");
} else {
	System.out.println("F 학점 - 재수강하세요");
}

switch문

if문의 경우 조건이 많아질 수록 else if문을 계속 추가하여 주어야 한다.
그렇게 되면 식이 복잡해지고 눈에 쉽게 들어오지 않아 좋지 않다.
이럴 때 switch문을 많은 조건들을 간결하게 표현할 수 있다.

switch문의 기본 구조

switch (조건식) {
    case 값1 : 
        //조건식의 결과가 값1일 경우 수행될 문장
        //...
        break;
    case 값2 :
        //조건식의 결과가 값2일 경우 수행될 문장
        //...
        break;
    case 값3 :
        //조건식의 결과가 값3일 경우 수행될 문장
        //...
        break;
    //...
    default :
        //조건식의 결과와 일치하는 case문이 없을 때
        //수행될 문장 
}

조건식의 결과에 따라 원하는 문장을 실핼시킬 수 있다.
if-else if문과 동일하게 사용할 수도 있지만 좀 더 간결하게 표현된다.
break란 break;를 만나면 조건식을 빠져나오게 하는 명령어로
break문이 없으면 case문 사이 구분이 없어져 다른 break문을 만나거나
다른 switch문 안의 문장들을 모두 수행하게 된다.

switch문 사용 예제

int month = 8; //월

switch (month) {
case 1:
	System.out.println("31일까지  있습니다");
	break;
case 2:
	System.out.println("28 또는 29일까지 있습니다");
	break;
case 3:
	System.out.println("31일까지  있습니다");
	break;
case 4:
	System.out.println("30일까지  있습니다");
	break;
...
}

//위와 같은 switch문을 아래와 같이 합쳐서 사용할 수도 있다.
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
	System.out.println(month + "월은 31일까지  있습니다");
	break;
case 2:
	System.out.println(month + "월은 28 또는 29일까지 있습니다");
	break;

case 4: case 6: case 9: case 11:
	System.out.println(month + "월은 30일까지  있습니다");
	break;
}

조건식의 결과는 다르지만 같은 문장을 실행시키고 싶을 때는
위와 같이 (case 1: case 3: case 5: … case 12:)붙여서 사용할 수 있다.


© 2018. All rights reserved. Polog by Soowan Kim.

Powered by Hydejack v8.2.0