본문 바로가기
Study/JSP

Javascript 삼항연산자

by 얏옹이 2023. 6. 27.
반응형

Java if else의 약식이라고도 부를수 있는 삼항연산자.

 

if else 문을 사용하다보면 상대적으로 코드가 몇줄에 걸쳐서 작성하게 되는데, 이를 간단하게 한줄로 표현할수 있게 해주는것이 바로 삼항 연산자이다.

 

삼항연산자의 기본 문법은 아래와 같다

 

variable = (condition) ? expressionTrue :  expressionFalse;

 

변수 = ( 조건식 ) ? true일때 : False일때 라는 뜻이다. 코드로 이해해보자

 

먼저 Java 식으로 표현해보자면 아래와 같이 표현할수 있다.

 

String keyword;
int b = 10;

keyword = (b > 1) ? "B는 1보다 크다" : "B는 1보다 크지않다";

 

코드의 흐름을 이해해보자 먼저 String 타입의 keyword라는 변수를 선언후에 int 타입의 B를 선언하였다. B는 10이라는 값으로 초기화를 하였고

 

B가 1보다 크다면 ? "B는 1보다 크다 " 라는 문자열을 keyword 변수에 대입하는것이고, 그렇지 않다(else) 라면 "B는 1보다 크지않다" 라는 문자열이 keyword 변수에 대입되는것이다.

 

이는 곧 if else문구에서는 

 

if(b > 1) {
	keyword = "B는 1보다 크다";
} else {
	keyword = "B는 1보다 크지않다";
}

 

이렇게 표현하는것과 같은 동작이 발생한다. 

 

반응형

 

단순하게 코드줄만 보더라도 if else는 들여쓰기가 포함되어있지만 4~5줄이 필요하고. 삼항연산자를 이용하면 한줄이면 간단한 if else 문장을 표현할수 있다. 물론 표현식 자체가 우리 눈에 익숙한건 if else나 if else if 문법이 더 익숙할것이다.

 

Javascript에서의 다중 삼항연산자 문법도 한번 같이 살펴보자.

 

const score = 85;
const grade = (score >= 90) ? "A" : (score >= 80) ? "B" : (score >= 70) ? "C" : (score >= 60) ? "D" : "F";
console.log(grade); // 결과: B

 

const는 Java에서 Final 변수와 마찬가지로 불변하는 변수이다. 한번 지정하면 값을 다시 지정하거나 변경할수 없다.

 

먼저 score라는 변수에 85라는 값을 대입했고 grade라는 변수에는 삼항연산자로 조건식을 구현하였다.

 

score가 90이상이면 A라는 문자열이 grade에 대입된다. 마찬가지로 80 이상이면 B 70이상이면 C 60 이상이면 D
그리고 마지막으로 최종 else에 해당되는 F가 대입되게 구현한것이다.

 

이를 Java if elseif문으로 변경해보자면

 

final int score = 85;
String grade = "";

if(score >= 90) {
	grade = "A";
} else if(score >= 80) {
	grade = "B";
} else if(score >= 70) {
	grade = "C";
} else if(score >= 60) {
	grade = "D";
} else {
	grade = "F";
}

이렇게 되는것이다. (사실 이경우에는 else if보다는 switch문이 더 표현하기 쉽다)

 

삼항연산자를 사용하여 간단하게 구현하면 이는 코드의 가독성을 높여 클린코드에 한발짝 더 다가설수 있을것 같아 보인다.

 

개인적으로 가장 좋은건 단순 if else 문은 삼항연산자로 표현할수 있으니 삼항연산자로 표현하고, if else if 와 같이 조건식이 여러개 필요하면 if elseif 문장으로 표현해주는것이 좀더 바람직해 보인다.

 

 

반응형