티스토리 뷰

if-else if문
  • 하나의 상황에 대한 조건이 여러개로 나뉘고 각 조건에 다른 수행이 이루어져야 할 경우 사용
  • 각 조건은 상호 배타적임
if(조건식 1){
   수행문 1;    //조건식1가 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else if(조건식2){
   수행문 2;    //조건식2가 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else if(조건식3){
   수행문 3;    //조건식3이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else{
   수행문 4;    //위 조건이 모두 해당되지 않는 경우 수행됨 (디폴트 조건)
}
수행문 5;       //if-else if문이 끝나면 수행된다.
가령 조건식 2가 만족되면 수행문->수행문 5 순으로 수행된다.

if-else if 순서도


 

실습

package 15;

public class IfElseIfTest {

	public static void main(String[] args) {

		int age= 12;
		int charge;
        
		if(age < 8) {
			charge = 1000;
			System.out.println("미취학아동입니다.");
		}else if(age < 14) {
			charge = 2000;
			System.out.println("초등학생입니다.");
		}else if(age < 20) {
			charge = 2500;
			System.out.println("중,고등학생입니다.");
		}
		System.out.println("입장료는 "+charge+"원 입니다."); //*Error발생
	}

}


마지막 수행문의 charge변수를 초기화하지 않았다.

*Error대처
	↓
else {
	charge=3000;
    System.out.println("일반인입니다.");
}

위에 조건이 하나도 맞는게 없다면 무조건 else이하를 수행한다.

package 15;

import java.util.Scanner;

public class IfElseIfTest {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		
		int age = scanner.nextInt();
		int charge;
		
		if(age < 8) {
			charge = 1000;
			System.out.println("미취학아동입니다.");
		}else if(age < 14) {
			charge = 2000;
			System.out.println("초등학생입니다.");
		}else if(age < 20) {
			charge = 2500;
			System.out.println("중,고등학생입니다.");
		}else {
			charge = 3000;
			System.out.println("일반인입니다.");
		}
		System.out.println("입장료는"+charge+"원 입니다.");
		
	}

}