조건문: 파트 1

프로그래밍에는 많은 조건문이 있지만 어떻게 하면 더 잘 활용할 수 있을까요?

아래 코드를 고려하십시오

  private demo(myVar: string): string {
    let myReturnVar: string;
    if(myVar === 'condition'){
      myReturnVar = 'It is condition';
    }else {
      myReturnVar = 'It is not condition';
    }
    return myReturnVar;
  }

  demo('condition'); // 'It is condition'
  demo(''); // 'It is not condition'

인지 복잡성 4로 우리의 필요를 충족하지만 좋은가요?
개발자로서 우리는 깨끗한 코드를 작성해야 합니다. 그리고 위의 내용을 더 좋게 수정할 수 있습니다.

수정 과정:
  • 값을 반환하는 것 외에는 사용하지 않을 것이기 때문에 값을 직접 반환할 수 있는데 myReturnVar 변수를 사용하는 이유는 무엇입니까?
  • 일단 데이터를 반환하면 별도의 else 문이 필요한 이유를 확인합니다.
    아래 코드를 보자:

  •   private demo(myVar: string): string {
        if(myVar === 'condition'){
          return 'It is condition';
        }
        return 'It is not condition';
      }
    

    인지 복잡성은 동일하게 유지되지만(4) 이제 코드가 이전 코드보다 더 깨끗해졌습니다.

    그러나 if-else 조건이 정말로 필요한가요? 복잡성을 (3)으로 줄이는 삼항 연산자를 사용하여 수행할 수 있습니다.

      private demo(myVar: string): string {
        return myVar === 'condition' ? 'It is condition' : 'It is not condition';
      }
    

    위에서 한 줄 검사가 있는 경우 삼항 연산자를 사용하는 것이 더 낫다고 말할 수 있습니다.

    큰 조건은 어떻습니까?

      private demo(myVar: string): string {
        if(myVar === 'condition') return 'C1';
        if(myVar === 'demo') return 'C2';
        if(myVar === 'thing') return 'C3';
        if(myVar === 'demo1') return 'C4';
        if(myVar === 'demo5') return 'C5';
        return '';
      }
    
      private demo1(myVar: string): string {
        switch (myVar) {
          case 'condition': return 'C1';
          case 'demo': return 'C2';
          case 'thing': return 'C3';
          case 'demo1': return 'C4';
          case 'demo5': return 'C5';
          default: return '';
        }
      }
    

    각각 (12)와 (14)의 인지 복잡성으로 두 가지 방식으로 할 수 있습니다.

    조건문을 작성하는 더 좋은 방법은 항상 있습니다.
    곧 계속해서 살펴보겠습니다.

    게시물이 마음에 들면 더 많은 것을 위해 나를 따르십시오.


    .ltag__user__id__682652 .follow-action-button {
    배경색: #4666b8 !중요;
    색상: #ffffff !중요;
    border-color: #4666b8 !중요;
    }



    라훌 라즈 팔로우



    I am a developer who is trying to improve myself day by day.

    좋은 웹페이지 즐겨찾기