[Java] 자바, 삼항연산자(ternary operator) 사용방법
- Language/Java
- 2021. 1. 27.
보편적인 if~else 문
public static void test1 () {
String grade = "";
int math = 70;
if(math >= 90) grade = "pass";
else grade = "fail";
System.out.println(math + " is " + grade);
}
// 70 is fail
일반적으로 if ~ else 구문을 사용할 때에는 이와같이 변수들을 세팅하여 각 조건마다 값을 세팅한다. 위 예제는 math값이 90이 넘을 경우 pass이고 그렇지 못할 경우, fail인데 math값이 70이기 때문에 "70 is fail"이라는 결과를 화면에 뿌려준다.
default를 세팅하여 라인을 줄인 else 문
public static void test2 () {
String grade = "fail"; // default 값을 세팅하여 else 경우의 수를 줄인다
int math = 70;
if(math >= 90) grade = "pass";
System.out.println(math + " is " + grade);
}
// 70 is fail
그러나 개발의 리팩토링을 중요시 여기고 라인수를 줄이길 원한다면, 이렇게 default값을 세팅하여 else를 빼는 방식을 사용할 수 있다. 위 방식은 오히려 컴퓨터 입장에서도 명령어가 줄어들기 때문에 티끌만큼이겠지만 속도도 더 빠르다.
삼항연산자
변수 = (조건) ? 참 : 거짓;
라인을 더 줄이고 싶을 경우, 삼항 연산자를 활용할 수 있다.
public static void test3 () {
int math = 70;
String grade = (math >= 90) ? "pass" : "fail";
System.out.println(math + " is " + grade);
}
// 70 is fail
조건 이후, 참일 경우 물음표(?) 다음의 값을 세팅하고, 실패할 경우 다음의 값을 세팅한다. 그러나 여기서 한가지 알아둬야 할 것은 아래와 같은 문법도 가능하다는 것이다.
int math = 90;
String test = "";
String grade = (math >= 90) ? test = "뜬금포..." : "fail";
System.out.println(math + " is " + grade + " " + test);
// 90 is 뜬금포... 뜬금포...
참 구문안에 다른 변수(test) 에 값을 세팅하고, 이를 호출해보면 test에도 값이 세팅되고 grade에도 세팅이 된 것을 확인할 수 있는데 이게 가능한 이유는 아래와 같은 구문이 가능하기 때문이다.
String grade2 = test3 = "뜬금포...!!";
System.out.println(grade2 + " is " + test3);
// 뜬금포...!! is 뜬금포...!!
값을 세팅할 때 참 부분만 가능하고, 거짓 부분에는 값이 세팅이 되지 않으니 이 부분에 대한 참고가 필요하다. 위와 같이 다른 변수를 세팅하는 것은 삼항연산자를 혼란스럽게 하기 때문에 이런 세팅이 필요할 경우 if ~ else를 쓰는 것이 나아 보인다.
삼항연산자는 어디까지나 가독성을 위해서 사용되는 것이 중요하며, 오히려 안쓰다가 삼항연산자를 갑자기 쓰게 되는 경우 오히려 가독성이 떨어질 수 있다는 점도 중요시 여겨야 할 것이다.
'Language > Java' 카테고리의 다른 글
[Java] 인터페이스(Interface) 개념과 구현하기 (0) | 2021.06.25 |
---|---|
[Eclipse] 이클립스에서 에러 표시 무시하기 (0) | 2021.03.30 |
[Java] 자바 IndexOf로 모든 위치 찾는 방법 (0) | 2021.01.02 |
[Java] 날짜값 쉽게 변경하기(GregorianCalendar) (0) | 2020.12.10 |
[Java] 자바 랜덤함수(Random) 및 Seed 설명 (0) | 2020.12.08 |