의사 코드는 매우 중요합니다!

나는 스스로 JavaScript를 가르칠 때 테스트 주도 개발(Test Driven Development)을 배우면서 성취한 것을 자랑스럽게 생각합니다. 안하는 것보다 늦게하는 것이 낫다. 처음에 에서 언급한 연습에서 계속해서 이번에는 시작 번호와 끝 번호가 있고 끝과 시작점을 포함하여 그 사이에 모든 숫자를 더하려는 sumAll 연습입니다.

내가 먼저 한 것은 의사 코드를 수행하는 것이었습니다. 왜냐하면 그것이 어떻게 일을 훨씬 더 명확하게 해준다는 말을 계속 들었고, 내가 원하는 것을 인간 언어로 알고 있었고 컴퓨터로 번역해야 하기 때문에 그렇게 했기 때문입니다.

인정합니다. 때로는 프로그래밍을 하고 최대한 완벽하게 만들고 싶은 충동을 느끼기도 합니다. 왜냐하면 그것이 제가 수업에서 배웠기 때문입니다. 하지만 문제를 하나씩 계획하고 세분화하는 것이 더 낫다는 사람들의 생각이 옳다는 것을 깨닫기 시작했습니다. 그리고 나는 보통 코드 블록에 부딪혀 좌절하고 포기합니다. 하지만 이 문제는 내가 원하는 것, 이름을 붙이고 싶은 변수, 레시피의 재료 이름 지정 등을 적었을 때 답답함을 느끼지 않았습니다! 나는 어딘가에 도달하지 못하고 스택 오버플로와 구글을 활용하여 매개변수가 배열인지 여부를 검사할 수 있는 instanceof와 같은 기능을 배울 때마다 휴먼 노트를 다시 언급하는 자신을 발견했습니다.

  //What code should accomplish
  //Want two variables, numStart and numEnd
  //Loop to begin at numStart and end at numEnd
  //Add numbers between numStart and numEnd, including the two in summation
  //return the sum at the end, variable named finalSum
  //check if parameters are negative or non-number as well


그런 다음 올바른 출력을 얻는 문제였습니다. 확인해야 할 console.log가 꽤 많았습니다. :) 더 큰 숫자가 먼저 시작되는 부분에서 거의 막혔지만 대신 감소한다는 점을 제외하고는 동일한 논리라는 것을 깨달았습니다. 증가의.

전체 코드는 다음과 같습니다.

const sumAll = function (numStart, numEnd) {

    let finalSum = 0; //holds the sum of numbers
    let addedNumbers = 0; //hold added numbers
    let i = numStart

    //Checking right away to see if number is non-number or negative.
    if (i < 0 || typeof numStart != "number" || typeof numEnd != "number" ||
        numStart instanceof Array || numEnd instanceof Array) {
        return 'ERROR';
    }

    //handles case when numStart is larger
    while (i > numEnd) {
        addedNumbers += i;
        i--;

        if (i == numEnd) {
            addedNumbers += i;
            finalSum = addedNumbers;
            console.log('#2 Final sum is: ', finalSum);
        }
    }

    //handles case when numStart is smaller
    while (i < numEnd) {
        addedNumbers += i;
        i++;

        if (i == numEnd) {
            addedNumbers += i;
            finalSum = addedNumbers;
            console.log('Final sum is: ', finalSum);
        }
    }
    return finalSum

};


// Do not edit below this line
module.exports = sumAll;


나는 이 모든 것을 내 여정을 기록하고 내가 추구하기로 선택한 이 분야에서 발전하고 선배가 되었을 때를 되돌아보기 위해 말합니다. 휴가를 제대로 즐길 여유가 없기 때문에 진정으로 휴가를 즐길 수 없다는 사실에 낙담하고 슬퍼하지만, 언젠가는 기술 경력을 통해 필요에 대한 접근성과 재정적 안정을 제공하여 즐겁게 보낼 수 있게 될 것입니다. 성취감을 느낀다.

내가 비록 어둠 속을 걸을지라도 매일은 더 밝은 내일을 향한 발걸음입니다. 이것은 떠오르는 컴퓨터 엔지니어에 대한 나의 간증입니다.

좋은 웹페이지 즐겨찾기