반응형

if-else if문

  • 여러 개 중의 하나 - 여러 개의 조건식을 포함한 조건식
if (조건식1) {
	// 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식2) {
	// 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식3) {	// 여러개의 else if를 사용할 수 있다.
	// 조건식3의 연산결과가 참일 때 수행될 문장들을 적는다.
} else {	// 마지막은 보통 else블럭으로 끝나며, else블럭은 생략 가능하다.
	// 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}

전체가 한묶음이다. 
위의 예시를 기준으로 총 4개의 블럭이 있다.
4개의 블럭들 중에서 딱 하나만 실행하고 문장 전체를 빠져나온다.

만약 조건식1이 참이면, 첫번째 블럭만 실행하고 밖으로 빠져나온다.

조건식1이 참이아니면, 두번쨰 조건식으로 간다. 만약에 두번째 조건식도 거짓이면 세번째로 간다.
세번째도 거짓이면 else블럭으로간다. 

그리고 else블럭은 작성하지 않고 생략하는 것도 가능하다.

위 그림은 score값이 85일때 처리되는 프로세스를 나타냈다.

Python을 공부한 사람이라면, Python의 if elif 과 똑같이 생각하면 된다.

[예제 Ex4_4]

import java.util.*;

public class Ex4_4 {

    public static void main(String[] args) {
        int score = 0;      // 점수를 저장하기 위한 변수
        char grade = ' ';   // 학점을 저장하기 위한 변수 공백으로 초기화한다.

        System.out.print("점수를 입력하세요.>");
        Scanner scanner = new Scanner(System.in);
        score = scanner.nextInt();      // 화면을 통해 입력받은 숫자를 sore에 저장

        if (score >= 90) {      // score가 90점 보다 같거나 크면 A학점
            grade = 'A';}
        else if (score >= 80) { // score가 80점 보다 같거나 크면 B학점
            grade = 'B';}
        else if (score >= 70) { // score가 70점 보다 같거나 크면 C학점
            grade = 'C';}
        else { // 나머지는 D학점
            grade = 'D';}

        System.out.println("당신의 학점은 "+ grade +"입니다.");

    }
}

[실행 결과]

점수를 입력하세요.>90
당신의 학점은 A입니다.

원래는 아래와 같이 조건이 작성되어야 한다.

근데 예제에서는 생략된 이유는, if else문이어서 그렇다. 
앞에서 거짓인 애들만 다음 조건식으로 넘어가기 때문에, 이미 앞에서 90보다 큰것들은 제외되어 두번째 조건식으로 넘어가기 때문에 두번째 조건식에서 이게 90보다 작은지는 확인할 필요가 없다. 

 


 

중첩 if문 - if문 안의 if

if (조건식1) {
	// 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다.
    if (조건식2) {
    	// 조건식1과 조건식2가 모두 true일 때 수행될 문장들}
    else {
    	// 조건식1이 true이고, 조건식2가 flase일 때 수행되는 문장들}
} else {
	// 조건식1이 false일 때 수행되는 문장들
}

중첩횟수에는 제약이 없다고 보면 된다.
사용이 어렵지는 않다.

그러나 중첩 if문에서 조심해야 할 부분이 있다.
바로 "괄호"다.

만약에 괄호를 생략하면 오른쪽처럼 else문은 가까운 if문과 묶인다.
들여쓰기 때문에 첫번째 if문과 연결된 else오해 할 수 있으니 이점을 주의하자.

 

반응형

'JAVA' 카테고리의 다른 글

임의의 정수 만들기  (0) 2022.03.19
switch문  (0) 2022.03.18
조건문 if문과 if-else문  (0) 2022.03.17
조건 연산자, 대입 연산자  (0) 2022.03.17
논리 연산자, 논리 부정 연산자  (0) 2022.03.16