조건처리

김하은·2023년 4월 23일
0

if와 '?'을 사용해 조건을 처리한다.
여기서 '?'은 물음표 연산자 라고 불린다.

if문은 소괄호 안에 들어가는 조건을 평가한다. 그 결과가 ture일때 if문 안에 있는 문이 실행된다.

if문을 사용시 true일 경우 실행되는 구문이 단 한 줄이라도 중괄호{}로 감싸주는 것이 코드가독성이 좋다.

Boolean형으로의 변환

if문은 소괄호 안의 식을 평가 후 그 결과를 boolean값으로 변환한다.
이때 형변환 규칙에 의해 숫자 0, null, undefined, NaN, "" 은 false가 되므로 falsy한 값 이라고 한다.
이 외의 값은 모두 truthy한 값이다.

이 규칙에 따라서 조건문이 false인 경우에는 if문안의 구문이 실행되지 않는다.
항상 true일 경우에만 실행이 된다는 의미이다.

확정된 boolean값(이미 true인지 false인지 확정되어 담긴 변수)을 if문의 조건식에 넣어줄 수도 있다.

if-else

if 문에는 else절을 붙일 수 있다. 그 뒤에 이어지는 코드는 if문이 거짓일때 실행된다.

조건이 여러개일 경우 else if를 사용하여 여러 조건을 처리할 수 있다.

조건부 연산자 '?'

물음표 연산자라고도 불린다.
이 연산자를 사용하면 더 간결하게 조건식을 표현할 수 있다.

조건부 연산자는 물음표로 표시한다.
피연산자가 세개(비교하는 인수가 3개) 이기에 조건부 연산자를 삼항연산자라고 한다.

let result = condition ? value1 : value2

평가대상 condition이 true면 value1이 , false라면 value2가 반환된다.

다중 '?'

물음표 연산자 여러개를 사용하면 복수조건을 처리할 수 있다.

let age = prompt('나이를 입력해주세요.', 18);

let message = (age < 3) ? '아직 애기네요' :
  (age < 18) ? '미성년자입니다.' :
  (age < 100) ? '성년입니다.' :
  '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!';
console.log( message );

먼저 age<3을 평가한다. 조건에 맞으면 '아직 애기네요'가 출력되고, 아니라면 다음 조건을 평가한다.
그 다음 조건인 age<18을 평가하고 이 조건이 맞다면 '미성년자입니다'가 출력된다. 이것도 아니면 다음 조건으로 넘어가게 되고 ...
계속해서 이런식으로 작동되고 다 아니라면 마지막의 '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!' 가 출력되게된다.

주의

물음표 연산자를 if대용으로 사용하는 경우가 있다.
그러나 가독성이 좋지 않기에 조건에 따라 반환값을 달리하려는 목적에 부합하게 사용하는 것이 좋다.
여러 분기를 만들어 처리할 경우에는 if문을 사용하자!!

0개의 댓글