삼항 연산자(조건 연산자)란 무엇인가?
삼항 연산자(조건 연산자)는 Java 8 Language Specification에서 Conditional Operator 라고 정의되어 있다.
아래 사진의 oracle 공식문서에 따르면 조건 연산자는 한 표현식의 boolean 값을 사용하여 다른 두 표현식 중 하나를 쓸 표현식을 결정한다고 적혀져 있다.
즉, 피연산자가 3개라는 뜻이다.
😥 주의사항
조건문인 if문이 복잡해보여 삼항 연산자로 바꿔 사용했을 시 코드를 간결하게 축약하여 쓸 수 있다.
하지만 모르는 사람이라면 어떤 의미인지 알 수 없어서 협업할 때라든지 소스코드를 전부 볼 때 가독성이 떨어질 수 있다.
또한 코드의 길이가 줄어든다고 해서 컴파일 속도가 빨라지는 것은 절대 아니다.
특히 삼항 연산자를 중복하여 쓴다면 가독성이 매우 떨어질 것이다.
사용방법
사용 방법은 아래 이미지와 같다. 왼쪽이 삼항 연산자이고, 오른쪽은 if문이다.
같은 조건이지만 쓰는 방식에 따라서 이렇게나 다르다.
참(true)일 때 식1을 반환해주고, 거짓(false)일 때 식2를 반환해준다.
여기 식1, 식2에는 값, 수식, 메소드 호출 등의 명령도 넣을 수 있다.
가독성을 높이려고 조건식을 괄호( )로 쓰기도 하는데 이는 필수가 아닌 옵션이다.
예시
아래 이미지도 왼쪽이 삼항 연산자, 오른쪽이 if문이다.
x가 y보다 작다면 참(true)이어서 x값을 반환하여 변수 result에 대입해준다.
x가 y보다 크다면 거짓(false)이어서 y값을 반환하여 변수 result에 대입해준다.
🤔 만약 반환하는 표현식 x와 y값에 삼항 연산자가 중첩되어 들어간다면?
괄호로 묶여있어서 가독성이 그나마 좋아보이는데 괄호가 없다면 가독성이 매우 떨어진다.
괄호는 필수가 아니지만 가독성을 위해 쓰는것이 좋아보인다.
아래 이미지처럼 조건식에 괄호를 쓰거나 참(true)와 거짓(false)에만 괄호를 감싸도 된다.
x가 y보다 작다면 참(true)이어서 참(true)값을 반환해야 하는데 여기에는 삼항 연산자가 또 들어있다.
그렇다면 다시 한번 더 삼항 연산자를 풀어서 반환하면 된다.
아래 이미지처럼 x가 y보다 작아서 참(true)값에 있는 삼항 연산자를 푸는데 x가 5라면 참(true)이어서 5를 반환하고 거짓(false)이면 7을 반환한다.
위 중복 삼항 연산자를 if문으로 바꾸면 아래 이미지와 같다.
결론
가벼운 if문이라면 삼항 연산자로 간단하게 1줄 적어 가독성을 높일 수는 있겠으나 조건이 중첩되어있다면 삼항 연산자는 가독성을 낮출 수 있으므로 조심해서 써야겠다. if문에다가 중괄호{ } 를 쓰면 가독성이 매우 높기에 대부분 삼항 연산자를 쓰지않고 if문을 쓸 것 같다.
'프로그래밍 > Java' 카테고리의 다른 글
Java(자바) API 문서 다운받기 (0) | 2022.01.11 |
---|---|
Java(자바) 환경변수 설정하기 (0) | 2022.01.11 |
Java란? (3) | 2022.01.11 |
Java 삼항 연산자(조건 연산자) - 응용 (0) | 2022.01.06 |
Java(자바)를 꼭 배워야할까? (0) | 2022.01.03 |