안녕하세요~ 

이번 시간에는 조건 순서에 따라 달라지는 출력에 대해 알아보려고 하는데요.

완벽하게 파악해 봅시다~

조건문 if, else if, else를 모두 사용한 코드

package study;

import java.util.Scanner;

public class Day14 {
	public static void main(String[] args) {	
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자입력> ");
		int num = sc.nextInt();
		
		if(num == 0) {
			System.out.println("0입니다.");
		}
		if(num % 3 == 0) {
			System.out.println("3의 배수");	
		}
		if(num % 4 == 0) {
			System.out.println("4의 배수");	
		}
		if(num % 3 == 0 && num % 4 == 0) {
			System.out.println("3과 4의 배수");	
		}else {
			System.out.println("둘 다 아닙니다.");	
		}
	}
}

 

package study;

import java.util.Scanner;

public class Day14_2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자입력> ");
		int num = sc.nextInt();
		
		if(num == 0) {
			System.out.println("0입니다.");
		}else if(num % 3 == 0) {
			System.out.println("3의 배수");	
		}else if(num % 4 == 0) {
			System.out.println("4의 배수");	
		}else if(num % 3 == 0 && num % 4 == 0) {
			System.out.println("3과 4의 배수");	
		}else {
			System.out.println("둘 다 아닙니다.");	
		}
	}

}

 

package study;

import java.util.Scanner;

public class Day14_3 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자입력> ");
		int num = sc.nextInt();

		if(num == 0) {
			System.out.println("0입니다.");
		}else if(num % 3 == 0 && num % 4 == 0) {
			System.out.println("3과 4의 배수");	
		}else if(num % 3 == 0) {
			System.out.println("3의 배수");	
		}else if(num % 4 == 0) {
			System.out.println("4의 배수");	
		}else {
			System.out.println("둘 다 아닙니다.");	
		}
	}

}

 세 개의 클래스 모두 3의 배수, 4의 배수, 3과 4의 배수를 판별하여 출력하려고 하는데 조금씩 다르게 작성한 코드.


오늘의 핵심 키워드

  • if문은 조건이 참일 때 실행된다. 따라서, if문이 여러 개일 때는 모든 조건을 확인한다.
  • if else문은 앞에 조건이 거짓이고 해당 조건이 참일 때만 실행된다. 반대로 생각하면 앞에 조건이 참일 때는 실행되지 않는다.
  • else문은 모든 조건이 거짓일 때 실행된다. if else문과 마찬가지로 앞에 조건들 중에 참이 있을 때는 실행되지 않는다

 

 

 Day14 클래스에서는 조건문을 if문 4개와 else문 1개로 작성했고 모든 조건을 확인하고 참일 때 실행하게 됩니다.

(1) 12를 입력했을 때 ▶ 3과 4의 배수, 3의 배수, 4의 배수 조건 모두 참이기 때문에 출력

(2) 3을 입력했을 때 ▶ 3의 배수 조건이 참이라서 출력되었고 3과 4의 배수 조건에 대해 거짓이기 때문에 else문 실행


 

 Day14_2 클래스에서는 조건문을 if문 1개, else if문 3개, else문 1개로 작성했습니다.

(1) 12를 입력했을 때 ▶ if문부터 체크해서 0이 아니니까 넘어가고 3의배수 조건이 참이기 때문에 실행 후 아래 조건들은 체크하지 않습니다.

(2) 3을 입력했을 때 ▶ 12와 마찬가지로 if문부터 체크해서 0이 아니니까 넘어가고 3의배수 조건이 참이기 때문에 실행 후 아래 조건들은 체크하지 않습니다.


 

 

 Day14_3 클래스에서는 Day14_2 클래스와 구성을 똑같지만 조건의 순서만 바꾸어 작성했습니다.

​(1) 12를 입력했을 때 ▶ if문부터 체크해서 0이 아니니까 넘어가고 3과 4의 배수 조건이 참이기 때문에 실행 후 아래 조건들은 체크하지 않습니다.

(2) 3을 입력했을 때 ▶ if문부터 체크해서 0이 아니니까 넘어가고 3과 4의 배수도 아니니까 넘어가고 3의 배수 조건이 참이기 때문에 실행 후 아래 조건들은 체크하지 않습니다.


꼭 봐야되는 마무리 꿀팁!
  • 같은 상황에서 한 가지 경우에서만 실행하고 싶을 때는 if, else if, else 형식 적절히 사용하기!
  • 정확한 실행을 위해서 조건의 범위 중에서 넓은 조건일수록 나중에 배치하기!


▲ 영상으로 한번 더 복습하세요 :)