SOCO

if문 중복 없애기 _if문에 return, break 사용 본문

프론트/java script 기초지식

if문 중복 없애기 _if문에 return, break 사용

ssooda 2021. 6. 5. 14:28

예시.

function test() {
    let result ='';
    if (a) {
    	if(!b) {
        result='c';
       }
      } else{
      	result='a';
      }
      result +='b';
      return result;
   }

함수해석

1단계

result라는 변수를 undefined로 먼저 설정!

2단계

case1. a가 참이면, b가 거짓일 때 : result변수는 'c'가 되고,

case2. a가 참인데 b가 참일 때 : result 변수는 여전히 비어있고,

case3. a가 참이 아닐 때 : result변수는 'a'가 된다.

3단계

case1. result= 'cb'

case2. result= 'b'

case3. result= 'ab' 

----------------------------

 

if문 중복 줄이기 순서

1. 공통되는 단계를 각각에 넣는다 (result +='b'; return result;)

function test() {
    let result ='';
    if (a) {
    	if(!b) {
        result='c';
       }
      result +='b';
      return result;
      } else{
      	result='a';
        result +='b';
        return result;
      }
   }

 

2. 더 짧은 부분이 if문에 들어갈 수 있도록 순서를 바꾼다

 

function test() {
    let result ='';
    if (!a) {
      result='a';
      result +='b';
      return result;
    } else{
    	if(!b) {
        result='c';
       }
      result +='b';
      return result;
      }
   }

 

3. return이나 break를 통해 흐름을 끊어준다.

함수안에 if문이 있는 경우에는 return,

반복문에 if문이 있는 경우에는 break

return의 경우 해당 함수 자체를 나오는 것이고,

break의 경우 해당 if문만 나오는 것이다.

return, break를 사용하면 else를 없앨 수 있다.

 

function test() {
    let result ='';
    if (!a) { //a가 아니라면, 이 식이 실행되고, 여기 들어왔으면 return result;까지 하고 아예 test함수를 끝냄
        result='a';
        result +='b';
        return result;
        }
     if(!b) {//a이고(a이면 위의 if로 들어가지 않음), b가 아니면 이 식이 실행됨
        result='c';
       }
     result +='b'; //a이고, b가 아니면 바로 위 if 실행되고 여기까지 내려옴 or a이고 b이면 바로 여기로 옴
     return result;
   }