Career Pivot into Development Journal, 6일 차: JS 실습 5 – sumAll.js

며칠이 지났고, 일이 너무 바빠서 우선 순위를 정해야 했지만 다시 프로그래밍으로 돌아갈 수 있어서 너무 기쁩니다! :D 다음 실습으로 넘어갑니다...


문제 이해



이 연습에서는 두 개의 숫자를 매개변수로 사용하고 이 두 숫자 사이의 모든 숫자를 합산하는 함수를 만들어야 합니다.

계획


  • 프로그램에 UI가 있습니까? 어떤 모습일까요? 어떤 기능을 갖게 될까요? UI 없음
  • 입력이란 무엇입니까? 사용자가 데이터를 입력합니까, 아니면 다른 곳에서 가져올 것입니까? 함수 매개변수에 두 개의 숫자가 있습니다. 함수를 호출할 때 숫자가 입력됩니다.
  • 출력은 무엇입니까? 두 매개변수 사이의 모든 증분 정수의 합계인 숫자

  • 의사 코드




    Declare a function that takes two parameters, `startNum` and `endNum`. Name it `sumAll`
    
    Create a loop where the initialiser = `startNum` and the condition = `endNum`. Increment the loop.
    
    Declare a variable `sum` and set it equal to 0
    
    Concatenate `i` with `i` and store it in the variable `sum`
    
    Return `sum`
    
    Call the function `sumAll(startNum, endNum)`
    


    분할 및 정복



    두 개의 매개변수 startNum 및 endNum 을 사용하는 함수를 선언하십시오. 이름을 sumAll로 지정합니다.




    const sumAll = function(startNum, endNum) {}
    


    이니셜라이저 = startNum 및 조건 = endNum 인 루프를 만듭니다. 루프를 증가시킵니다.




    const sumAll = function(startNum, endNum) {
        for (let i = startNum; i <= endNum; i++) {
    }
    


    변수 합계를 선언하고 0으로 설정합니다.




    const sumAll = function(startNum, endNum) {
        let sum = 0;
        for (let i = startNum; i <= endNum; i++) {}
    }
    


    i를 i와 연결하고 변수 sum에 저장합니다.




    const sumAll = function(startNum, endNum) {
        let sum = 0;
        for (let i = startNum; i <= endNum; i++) {
            sum += i;
    }
    }
    


    반환 합계




    const sumAll = function(startNum, endNum) {
        let sum = 0;
        for (let i = startNum; i <= endNum; i++) {
            sum += i;
        }
        return sum;
    };
    


    sumAll(startNum, endNum) 함수를 호출합니다.




    const sumAll = function(startNum, endNum) {
        let sum = 0;
        for (let i = startNum; i <= endNum; i++) {
            sum += i;
        }
        return sum;
    };
    
    sumAll(1,5);
    



    테스트하기



    통과해야 하는 6가지 테스트가 있습니다.
  • 범위(1ms) 내의 숫자 합계
  • 큰 숫자로 작업
  • 큰 숫자부터 먼저 작동(1ms)
  • 음수와 함께 ERROR를 반환합니다.
  • 숫자가 아닌 매개변수가 있는 경우 ERROR를 반환함
  • 숫자가 아닌 매개변수가 있는 경우 ERROR를 반환합니다(1ms).
  • ERROR 를 반환해야 하는 모든 테스트부터 시작하여 이러한 문제를 해결해 보겠습니다. 처음 두 테스트는 위의 코드를 기반으로 이미 통과되었습니다. 나머지 테스트를 통과하려면 if...else 함수에서 sumAll 문을 사용해야 합니다.

    음수와 함께 ERROR를 반환합니다.




    if (startNum < 0 || endNum < 0) {
            return 'ERROR';
        }
    


    숫자가 아닌 매개변수로 ERROR를 반환합니다.




    if (startNum < 0 || endNum < 0 || typeof(startNum) !== 'number' || typeof(endNum) !== 'number') {
            return 'ERROR';
        }
    


    큰 숫자부터 먼저 작동(1ms)



    더 큰 숫자로 작업하는 것은 startNum > endNum 를 의미합니다. 이를 위해서는 위에서 했던 루프를 반대로 해야 합니다. 증가하는 대신 감소할 것입니다.

    if (startNum < 0 || endNum < 0 || typeof(startNum) !== 'number' || typeof(endNum) !== 'number') {
            return 'ERROR';
        } else if (startNum > endNum) {
            for (let i = startNum; i >= endNum; i--) {
                sum += i;
            }
            return sum
        }
    



    마지막으로 위에 있는 증분 for 루프를 추가합니다.

    const sumAll = function(startNum, endNum) {
        let sum = 0;
        if (startNum < 0 || endNum < 0 || typeof(startNum) !== 'number' || typeof(endNum) !== 'number') {
            return 'ERROR';
        } else if (startNum < endNum) {
            for (let i = startNum; i <= endNum; i++) {
                sum += i;
            }
            return sum;
        } else if (startNum > endNum) {
            for (let i = startNum; i >= endNum; i--) {
                sum += i;
            }
            return sum
        }
    };
    


    ✓ 범위(1ms) 내의 숫자 합계
    ✓ 큰 숫자로 작업
    ✓ 큰 숫자부터 먼저 작업
    ✓ 음수와 함께 ERROR를 반환합니다.
    ✓ 숫자가 아닌 매개변수로 ERROR를 반환합니다.
    ✓ 숫자가 아닌 매개변수로 ERROR를 반환합니다.

    모든 테스트가 통과되었습니다! 다음 운동으로...

    좋은 웹페이지 즐겨찾기