JAVA 삼항연산자가 뭐예요?

🤔 삼항연산자란 과연 뭘까요?
저는 이름에서부터 항이 3개 있는 연산자라는 느낌이 강하게 듭니다.
아니나 다를까 세 개의 피연산자를 필요로 하는 연산자를 말한다고 정의가 적혀있습니다.(이것이 자바다 p100)

삼항연산자를 쓸 때 필요한 재료는 총 5가지입니다.

  1. ?(물음표)
  2. :(콜론)
  3. 피연산자1(조건식)
  4. 피연산자2(값 또는 연산식)
  5. 피연산자3(값 또는 연산식)

🙄 삼항연산자는 왜 필요할까요? 도대체 왜 쓰는걸까요?
제 생각에는 코드를 줄이려고 하는 노력에서부터 삼항연산자가 탄생한 것 같습니다.
저는 보통 글을 읽을 때 구구절절 긴 글 보다는 짧은 글을 더 선호합니다. 그리고 그런 글이 눈에 더 잘 들어옵니다. (그런데 제 글은 왜 이렇게 길어질까요..)
코드도 마찬가지이지 않을까 싶습니다. 긴 코드를 짧게 줄일 수 있다면, 줄여서 사용하는 것이 조금 더 효율적이지 않을까요?

👀 지금부터 같은 코드를 if문과 삼항연산자로 비교해보겠습니다.

public static void main(String[] args) {
	int age = 20;
	int cost = 0;
		
	if (age <= 12) {
		cost = 450;
	} else if (age > 12 && age <= 18) {
		cost = 720;
	} else {	// 성인은
		cost = 1200;	// 버스요금 1200원
	}
		
	System.out.println(age + "살에 내실 요금은 " + cost + "원 입니다");
}

↑위 코드↑는 연령에 따른 버스요금을 나타내주는 프로그램을 if문으로 표현한 것 입니다.
현재 연령은 20으로 적어놨기 때문에 버스비로 1200원을 지불해야합니다.


현재 해당 프로그램을 만들기 위해 10줄을 쓰는 노력이 필요했습니다.

그런데!! 이걸 단 3줄로 줄일 수 있는 방법이 있다면??? 어떨까요? (저라면 춤을 추겠습니다)

그런 획기적인 일을 삼항연산자가 해준다고 합니다.
public static void main(String[] args) {
	int age = 20;
	int cost = (age <= 12 ? 450 : (age > 18) ? 720 : 1200);
	System.out.println(age + "살에 내실 요금은 " + cost + "원 입니다");
}

↑위↑가 삼항연산자로 줄인 코드입니다.
정말 간결해지지 않았나요?

삼항연산자는 보통 if문의 단축형태로 많이 쓰입니다.
한 줄에 간단한 내용을 넣어서 사용할 경우에는 if문보다는 삼항연산자가 조금 더 효율적이겠죠?

좋은 웹페이지 즐겨찾기