조건문

혀어어언·2023년 3월 19일
0

Let's Get It JS 요약

목록 보기
5/7

조건문(conditional statement)

  • 주어진 조건에 따라 코드를 실행하거나 실행하지 않는 문
  • 조건문은 조건식과 실행문으로 구분됨
    • 조건이 참인 값이면 내부의 실행문이 실행되고
    • 거짓인 값이면 실행문이 실행되지 않음
> if(로그인한 사용자) 정보를 보여줌;
// if(조건식) 실행문;


// 실행문이 둘 이상인 경우 중괄호로 감싸야 햄
> if(조건식){
    실행문1;
    실행문2;
    실행문3;
	}

else를 사용해 두 방향으로 분기하기

  • if문을 통해 조건이 true인 경우, else문을 통해 조건이 true가 아닌 경우로 분기 처리
  • if문 뒤에 else를 붙이고 다시 중괄호 안에 실행문 입력
> if(조건식){	// 조건식이 참인 값일 때 실행
  	실행문;
	} else {	// 조건식이 거짓인 값일 때 실행
  	실행문;
	}

else if를 사용해 여러 방향으로 분기하기

  • if문을 통해 조건이 true인 경우, else if문을 통해 조건이 true가 아닌 경우에서의 새로운 조건이 true인 경우, else 문을 통해 기타의 경우로 분기
> if(조건식){
    실행문;
  } else if(조건식){
    실행문;
  } else{
    실행문;
  }

중첩 if문 사용하기

  • 기본적으로 if문은 중첩을 지양하는 것이 좋다
    • 중첩이 있으면 들여쓰기를 하는데 들여쓰기가 많으면 가독성이 매우 떨어지기 때문
    • 콜백지옥...
    • 중첩 if문은 논리적으로 if-else if-else문으로 변환가능하므로 if-else if-else문으로 변환하자

switch 문으로 분기하기

  • switch문에는 조건식 두 개가 사용됨

    • switch 옆 소괄호 조건식의 값이 case의 비교 조건식 값과 일치(===)하는 경우 해당 동작문이 실행됨
    • 보통 조건식에 변수를 넣고, 비교 조건식에는 변수와 비교할 값을 넣음
> switch(조건식){
  case 비교조건식:
  	동작문;
}
> let value = 'A';
  switch(value){
    case 'A':
      console.log('A');
      console.log('B');	
  }
// 'A'
// 'B'
  • case를 여러번 사용할 경우 else if처럼 여러 방향으로 분기할 수 있음

    • 다만 하나의 case에 걸리게 될 경우 그 이후의 모든 case가 다 실행됨
    • 하나의 조건에 부합할 경우 swich문을 빠져나갈 수 있도록break문을 적어주자!
    • default를 통해 else와 같이 기타의 경우에 대한 분기처리 가능
      • default는 가장 마지막 case이기 때문에 break문을 붙이지 않아도 됨
      • if문에서는 else가 가장 마지막에 와야하지만, switch문에서 default의 위치는 어디든 상관없음
> let value = 'A';
  switch(value){
    case 'A':
      console.log('A');
    case 'B':
      console.log('B');
    case 'C':
      console.log('C');
  }
// 'B'
// 'C'

>  switch(value){
    case 'A':
      console.log('A');
  		break;
    default :	//default의 위치는 어디든 상관없음!
  		console.log('기타')
    case 'B':
      console.log('B');
  		break;
    case 'C':
      console.log('C');
  		break;
  }
//	'B'

조건부 연산자(conditional operator, 삼항연산자)

문법
조건식 ? 참일 때 실행되는 식 : 거짓일 때 실행되는 식
  • 조건부 연산자는 문(state)이 아니라 이므로 결괏값이 나옴
  • 조건부 연산자를 중첩해서 쓸 때는 가독성이 떨어질 수 있음
    • 소괄호 연산자로 감싸주거나
    • 들여쓰기
> let value = 5<0 ? '참입니다' : '거짓입니다';
//	undefined
> value
// '거짓입니다'


// 중첩된 조건부 연산자 
> let value2 = condition1 ? ( condition2 ? '둘 다 참입니다' : 'condition1만 참입니다') : 'condition1이 거짓입니다';

> let value3 = condition1
	? condition2
  	? '둘 다 참입니다'
  	: 'condition1만 참입니다'
  :	'condition1이 거짓입니다';

> let value4 = condition1
	? 'condition1이 참입니다'
  :	condition2
  	? 'condition2만 참입니다'
  	: '둘 다 거짓입니다';

0개의 댓글