티스토리 뷰

JAVA

[Java] 조건문(if문, if-else, switch-case)

단미라이프 2022. 3. 11. 09:48
반응형

 

 

1. 조건문

  • 조건의 참, 거짓에 따라 서로 다른 작업을 수행한다.
  • 주어진 조건을 비교 판단하여 조건에 만족할 경우 지정된 명령을 실행하고, 만족하지 않을 경우 다음단계의 명령을 수행하도록 하는 구문

 

 

 

 


 

 

2. 단순 if문

if (조건식) {
    <수행할 문장1>;	// 조건식이 참인 경우 실행
    <수행할 문장2>;
    ...
}
  • 조건식이 참(true)이면 if 내부의 '수행할 문장'이 실행되며, 거짓(false)이면 if문을 벗어난다. 

 

if문 예제

 

import java.util.Scanner;

public class Ex01 {

	public static void main(String[] args) {
		// 시험 점수를 입력받아 
		// 80점 이상이면 합격
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("점수를 입력하세요 >> ");
		int score = scan.nextInt();
		
		if(score >= 80)
			System.out.println("축하합니다! 합격입니다.");

	}

}

 

 


 

 

3. if-else문

if (조건문) {
    <수행할 문장1>;
    ...
} else {
    <수행할 문장2>;
    ...
}
  • '조건식'이 참(true)이면 '수행할 문장1'을 실행한 후 if-else문을 벗어나고, false이면 '수행할 문장2'를 실행한 후 if-else문을 벗어난다.

 

if-else문 예제

 

import java.util.Scanner;

public class Ex02 {

	public static void main(String[] args) {
		// 정수를 입력받아 
		// 3의 배수인지 판별
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("수를 입력하세요 >> ");
		int number = scan.nextInt();
		
		if (number % 3 == 0)
			System.out.println("3의 배수입니다.");
		
		else
			System.out.println("3의 배수가 아닙니다.");
		
	}

}

 

 


 

 

4. 다중 if-else문

if (조건식 1) {
    <수행할 문장1>;
    ...
} else if (조건식 2) {
    <수행할 문장2>;
    ...
} else if (조건식 3) {
    <수행할 문장2>;
    ...
} else {
    <수행할 문장2>;
    ...
}
  • 위에서부터 '조건식'이 참(true)인 경우 해당하는 '수행할 문장'을 실행한 후 다중 if-else을 벗어난다.

 

다중 if-else문 예제

 

import java.util.Scanner;

public class Ex03 {

	public static void main(String[] args) {
		// 점수를 입력받아 학점을 부여하는 프로그램
		// 90점 이상이면 A
		// 80점 이상 90점 미만이면 B
		// 70점 이상 80점 미만이면 C
		// 60점 이상 70점 미만이면 D
		// 60점 미만이면 F
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("점수를 입력하세요 >> ");
		int score = scan.nextInt();
		char grade;
		if(score >= 90)
			grade = 'A';
		else if (score >= 80)
			grade = 'B';
		else if (score >= 70)
			grade = 'C';
		else if (score >= 60)
			grade = 'D';
		else
			grade = 'F';
		
		System.out.println("학점은 " + grade + "입니다. ");
	}

}

 

 


 

 

5. 중첩 if-else문

  • if문이나 if-else문, else문의 '수행할 문장'에 if문이나 if-else문을 내포할 수 있다.

 

중첩 if-else문

 

import java.util.Scanner;

public class Ex04 {
	public static void main(String[] args) {
		// 점수와 학년을 입력받아
		// 60점 이상이면 합격, 미만이면 불합격
		// 4학년의 경우 70점 이상 합격
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("점수를 입력하세요 >> ");
		int score = scan.nextInt();
		System.out.println("학년을 입력하세요 >> ");
		int year = scan.nextInt();
		
		if(score >= 60) {
			if(year != 4)
				System.out.println("합격!");
			else if(score >= 70)
				System.out.println("합격!");
			else
				System.out.println("불합격!");

		}else {
			System.out.println("불합격!");
		}
	}
	
}

 

 

6. switch문

switch(식) {
    case 입력값1: ...
    	실행할 문장 1;
    	break;
    case 입력값2: ...
    	실행할 문장 2;
    	break;
    ...
    default: ...
    	실행할 문장 n;
}
  • switch문을 사용하면 가독성이 높은 좋은 코드를 작성할 수 있다.
  • switch문은 먼저 '식'을 계산하고 그 결과 값과 일치하는 case문으로 분기한다.
  • case문의 '실행할 문장'을 실행한 수 break를 만나면 switch문을 벗어난다.
  • 만일 어떤 case문으로도 분기하지 못하는 경우 default문으로 분기하여 '실행할 문장n'을 실행한다. 
    default문은 생략 가능하며, 실행문장은 {}으로 둘러 싸지 않는다.

 

switch 예제

 

  • 다중if-else문 예제를 switch문으로 작성해보세요.
import java.util.Scanner;

public class Ex03 {

	public static void main(String[] args) {
		// 점수를 입력받아 학점을 부여하는 프로그램
		// 90점 이상이면 A
		// 80점 이상 90점 미만이면 B
		// 70점 이상 80점 미만이면 C
		// 60점 이상 70점 미만이면 D
		// 60점 미만이면 F
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("점수를 입력하세요 >> ");
		int score = scan.nextInt();
		char grade;
		switch (score/10) {
			case 10:
			case 9:
				grade = 'A';
				break;
			case 8:
				grade = 'B';
				break;
			case 7:
				grade = 'C';
				break;
			case 6:
				grade = 'D';
				break;
			default:
				grade = 'F';
		}
		
		System.out.println("학점은 " + grade + "입니다. ");
	}

}

 

switch문에서 break문

 

  • case문이 실행되고 break문은 switch문을 벗어나도록 지시한다.
  • 만약 case문에 break문이 없다면 break를 만날 때까지 아래 case문의 문장을 계속 실행하게 된다.

 

 

반응형

'JAVA' 카테고리의 다른 글

[Java] 배열  (2) 2022.03.14
[Java] 반복문(for문, while문, do-while문)  (0) 2022.03.12
[Java] 연산자 및 연산자 우선순위  (0) 2022.03.09
[Java] Scanner를 이용한 키 입력  (0) 2022.03.08
[Java] 변수와 자료형, 형변환  (0) 2022.03.07
댓글
반응형
공지사항