[Java] 삼항 연산자

2022. 7. 19. 18:51·Language/Java
728x90

삼항 연산자

삼항 연산자란 3개의 피연산자를 필요로 하는 연산자이다.

구문

삼항 연산자의 문법은 간단하다. true/false를 판단할 수 있는 변수 또는 조건식을 적성한 후 ? 다음에는 연산 결과인 true 또는 false에 실행되는 표현식을 각각 작성하면 된다. 즉 조건 식의 연산 결과가 true일 결루 결과는 피연산자2이고, 조건식의 연산 결과가 false이면 결과는 피연산자3이 된다. 이때 반환값에는 값뿐만 아니라 수식, 함수 호출 등 여러 가지 형태의 명령문이 올 수 있다.

 

다음은 조건식이 true인 경우 int A라는 변수에 10이 담기고, false인 경우에는 A에 30이 담기는 예제이다.

// if 문
int A = 0; 
if(1 > 3){ 
	A = 10; 
}else{ 
	A = 30; 
}
// 결과 A = 30;

// 삼항 연산자
int A = (1 > 3) ? 10 : 30; 
// 결과 A = 30;

같은 로직을 if 문과 삼항 연산자를 이용해서 작성하였다. if문을 사용할 경우 6줄의 소스를 작성해야 하는데 삼항 연산자를 이용하면 1줄로 작성 할 수 있다. 삼항연산자를 여러 행으로 나누고 그 앞에 공백을 사용하면 긴 if / else 문을 매우 깔끔하게 만들 수 있다. 이것은 동일한 로직을 표현하지만 소스 코드의 가독성을 높일 수 있다.

var func1 = function( .. ) {
	if (condition1) { 
    	return value1
    } else if (condition2) { 
    	return value2 
    } else if (condition3) { 
    	return value3 
     } else { 
     	return value4 
     } 
}

//삼항연산자
var func2 = function( .. ) { 
	return condition1 ? value1 
       	     : condition2 ? value2 
             : condition3 ? value3 
       	     : value4 
}

주의 사항

삼항연산자를 사용 시 코드를 좀 더 간결하게 작성할 수 있는 장점을 가지고 있다. 하지만 코드가 짧다고 해서 if 문에 비해서 속도가 빠르지 않다. 또한 축약된 형식이기 때문에 잘못 사용할 경우에는 소스코드의 가독성을 해치기도 한다. 특히 한 줄에 조건식과 결과 값들이 모두 모여있으므로 줄 단위 디버깅을 할 때 상당히 불편하다. 따라서 가독성을 해치지 않으면서 코드가 간결해지는 경우에만 삼항 연산자를 써야 한다. 대부분의 경우에는 if 조건문을 사용하여 여러 줄로 작성하는 것이 좋다.

'Language > Java' 카테고리의 다른 글

[Java] 논리 연산자 (&&, ||, &, |, ^, !)  (0) 2022.07.20
[Java] 조건문 2  (0) 2022.07.19
[Java] switch-case문  (0) 2022.07.19
[Java] 삼항 연산자 중첩 사용  (0) 2022.07.19
[Java] 조건문 1  (0) 2022.07.19
'Language/Java' 카테고리의 다른 글
  • [Java] 조건문 2
  • [Java] switch-case문
  • [Java] 삼항 연산자 중첩 사용
  • [Java] 조건문 1
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (509)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (71)
        • 공부 (18)
        • 기타 (6)
        • 일 (47)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    객체
    event
    HTML
    JavaScript
    TypeScript
    array
    제어문
    web
    CSS
    Java
    object
    MySQL
    Python
    react
    변수
    파이썬
    자바스크립트
    next.js
    타입스크립트
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
[Java] 삼항 연산자
상단으로

티스토리툴바