본문 바로가기
언어/JAVA

조건문

by step 1 2021. 4. 10.
반응형

주어진 조건에 따라 다른 실행이 이루어 지도록 구현

 

  • if - else if를 사용하는 경우 하나의 조건이 만족 되면 나머지 else if 부분은 수행되지 않음
  • if - if로 사용하게 되면 각각 다른 조건 문으로 해석되어 각각 수행하게 됨

문법

if (조건) {

   조건에 맞을 경우 처리할 문법

}

else if (조건) {

  조건에 맞을 경우 처리할 문법

}

else {

   위 모든 조건이 해당 되지 않을 경우 처리할 문법

}

 

public class IfElseTest {

	public static void main(String[] args) {
		
		int age = 17;
		int charge = 3000;
		
		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 + "입니다.");
	}
}

 

결과

 

중, 고등학생입니다.
입장료는 2500입니다.

 

 

switch - case 문

  • if - else if - else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현
  • 비교 조건이 특정 값이나 문자열인 경우 사용
  • break문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 함
  • 자바 14부터 좀 더 간결해진 표현식이 지원 됨 (break 사용하지 않음)

문법

switch (조건에 대한 key 값) {

 

  case (조건에 대한 value 값) : {

 

         key값에 대한 value 값이 해당되면 처리할 문법

 

         break; (switch문 빠져 나감)

   }

}

import java.util.Scanner;

public class SwitchCaseTest {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int month = scanner.nextInt();

		int day;
		switch (month) {

		case 1: case 3: case 5: case 7: case 8: case 10: case 12: {
			
			day = 31;
			break;
		}

		case 2: {
			day = 28;
			break;
		}

		case 4: case 6: case 9: case 11: {
			day = 30;
			break;
		}

		default:
			System.out.println("존재하지 않는 달입니다.");
			day = -1;
		}
		System.out.println(month + "월은 " + day + "일 입니다.");
	}
}

결과

9
9월은 30일 입니다.

 

자바 14부터 지원

  • 간단하게 쉼표로 조건 구분
  • 식으로 표현 하여 반환 값을 받을 수 있음, 리턴 값이 없는 경우는 오류가 생김
  • yield 키워드 사용
import java.util.Scanner;

public class SwitchCaseTest {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int month = scanner.nextInt();

		int day;
		int test = switch (month) {
	
			case 1, 3, 5, 7, 8, 10, 12 -> {
				day = 31;
				yield 31;
			}
	
			case 2 -> {
				day = 28;
				yield 28;
			}
	
			case 4, 6, 9, 11 -> {
				day = 30;
				yield 30;
			}
	
			default -> {
				System.out.println("존재하지 않는 달입니다.");
				day = -1;
				yield -1;
			}
		};
		System.out.println(month + "월은 " + day + "일 입니다.");
		System.out.println("새로운 문법 테스트 값: " + test);
	}
}

 

결과

10
10월은 31일 입니다.
새로운 문법 테스트 값: 31

반응형

'언어 > JAVA' 카테고리의 다른 글

중간에 멈추는 break문, 무시하고 계속 진행하는 continue문  (0) 2021.04.11
반복문  (0) 2021.04.11
조건 연산자 (삼항 연산자)  (0) 2021.04.10
논리 연산자  (0) 2021.04.10
연산자  (0) 2021.04.10