김영한 자바 입문 조건문

if문과 else if문

if문에 else if를 함께 사용하는 것은 서로 연관된 조건일 때 사용한다. 그런데 서로 관련이 없는 독립 조건이면 else if를 사용하지 않고 if문을 각각 따로 사용해야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 예시1. if-else 사용: 서로 연관된 조건이어서, 하나로 묶을 때 
if (condition1) {
	// 작업1 수행
} else if (condition2) {
	// 작업2 수행 
}
	
// 예시2. if 각각 사용: 독립 조건일 때 
if (condition1) {
	// 작업1 수행 
}
if (condition2) { 
	// 작업2 수행
}

else if 핵심은 순서대로 맞는 조건 을 찾아보고, 맞는 조건이 있으면 딱 1개만 실행이 되는 것이다. 또한 불필요한 조건 검사를 피하고 코드의 효율성을 향상시킬 수 있다.

💡 참고

if, else if, else 문 다음에 실행할 명령어가 하나만 있을 경우에는 {} 중괄호를생략할수있다.

1
if (true) System.out.println("중괄호 생략 가능");

일반적으로 if문의 명령이 한 개만 있을 경우에도 다음과 같은 이유로 중괄호를 사용하는 것이 좋다.

  • 가독성: 조건문의 범위가 명확하게 표시된다.
  • 유지보수성: if문 안에 코드를 추가 시 오류 발생 가능성이 낮다.


switch문

switch문은 if문을 좀 더 편리하게 사용할 수 있는 기능이다. 단, if문은 비교 연산자를 사용할 수 있지만 switch문은 단순히 값이 같은지만 비교 가능하다.

1
2
3
4
5
6
7
8
9
10
switch (조건식) { 
	case value1:
		 // 조건식의 결과 값이 value1일 때 실행되는 코드
     break;
	case value2:
		 // 조건식의 결과 값이 value2일 때 실행되는 코드
     break;
  default:
		 // 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드 
}

🚨 break 문이 없다면?

break를 만나기 전까지 아래 case 문들을 연속해서 계속 실행한다.

자바 14 switch

사실 if문이 더 큰 범주의 조건을 다룰 수 있기도 하고 switch문이 엄청 간결하다고 보기 어렵다. 그래서 자바 14버전부터 새로운 switch문이 정식으로 도입되었다.

1
2
3
4
5
6
int coupon = switch (grade) {
   case 1 -> 1000;
   case 2 -> 2000;
   case 3 -> 3000;
   default -> 500;
 }

기존 switch 문과 차이점

  • -> 를 사용한다.
  • break 문 없이 선택된 데이터를 반환한다.

새로운 switch 문은 더 많은 내용을 다루고 있지만, 자세한 내용은 별도로 다룬다.


삼항 연산자

참과 거짓에 따라서 특정 값을 구하는 경우 삼항 연산자 또는 조건 연산자라고 불리는 ?, : 연산자를 사용 할 수 있다. 이 연산자를 사용하면 if 문과 비교해서 코드를 단순화 할 수 있다.

(조건식) ? 참인 경우 리턴 값 : 거짓인 경우 리턴 값