본문 바로가기

Language/JAVA

[JAVA] 제어문 (1) - 조건문 if-else, switch-case

JAVA 제어문(1) - 조건문 if-else, switch-case

 

자바의 제어문인 조건문, 반복문 중 조건문 if-else, switch-case 에 대해 알아봅니다.

 

제어문

프로그램은 위에서 아래 ↓, 왼쪽에서 오른쪽 → 방향으로 진행합니다.

이런 프로그램의 흐름을 변경하기 위해 사용하는 것이 제어문입니다.

조건문

비교 또는 판단을 boolean(true/false) 값으로 체크합니다.

비교연산자 <, >, <=, >=, ==, != 또는 논리연산자 &&, || 를 사용합니다.

if-else, switch-case 문

 


 

if 조건문 if-else

어떤 조건이 참(true)일 경우에 특정 로직을 실행합니다.

조건식에는 최종 결과값이 boolean(true/false) 만 가능합니다.

1형식

if (isAdmin) {
	// isAdmin == true 이면 실행
}

 

어떤 조건이 true이면 A를 실행하고, false일 경우에 실행할 B를 else 구문을 통해 정의할 수 있습니다.

❗else에는 조건식이 없습니다.

2형식

if (isAdmin) {
	// isAdmin == true일 경우 실행
} else {
	// isAdmin == false일 경우 실행
}

 

경우의 수가 3개 이상일 경우에는 아래와 같이 정의합니다.

3형식

if (age  < 10) {
	
} else if (age < 19) {
	
} else {
	
}

 

if-else 구문에서는 조건들 중 먼저 만족하는 하나의 구문을 실행하고 빠져나옵니다.

if (A) {
	// 로직1
} else if (B) {
	// 로직2
} else if (C) {
	// 로직3
} else {
	// 로직4
}

위와 같은 if-else 구문에서, A 조건에 만족한다면 로직1을 실행하고 B, C 조건문은 판단하지 않고 로직2, 로직3, 로직4를 실행하지 않은 채 if-else 구문 자체를 빠져나오게 됩니다.

마찬가지로 A 조건에 만족하지 않고 B 조건에 만족한다면, 로직2를 실행 후 로직3, 로직4를 건너뜁니다.

A 조건에 만족하지 않고 B 조건에 만족한다면 'A가 아니고 B이다' 라는 의미가 됩니다.

A, B, C 조건에 모두 만족하지 않아 마지막 else 문에 진입하게 된다면 'A, B, C 모두 아니다' 라는 의미죠.

if (age  < 10) {
	// age < 10
} else if (age < 19) {
	// age >= 10 && age < 19
} else {
	// age >= 19
}

 

switch 조건문 switch-case

만약 하나의 변수를 여러 값과 비교하는 경우는 어떨까요?

아래와 같이 무한 if-else 문을 작성해야 할 것입니다.

if (type == 'A') {

} else if (type == 'U') {

} else if (type == 'S') {

} ...

이럴때 편리하게 사용할 수 있는 조건문이 바로 switch-case 문입니다.

 

switch는 비교 대상인 조건값을 작성하고, 비교할 값을 case 키워드로 구분하여 작성합니다.

각 case 문이 끝나면 break; 키워드로 switch 문을 빠져나갑니다.

참인 case 문이 없다면 default 문을 실행합니다.

조건값에는 특정한 데이터 타입만 선언할 수 있는데요.

정수형(byte, short, int)과 문자형(char)만 가능하고 long, String, boolean, 실수형(float, double)은 불가능합니다.

 

위의 if-else문을 switch-case문으로 구현하면 아래와 같습니다.

switch (type) {
	case 'A' :
    	break;
    case 'U' :
    	break;
    case 'S' :
    	break;
    default :
}

 

728x90