function solution(num_list) {
    // for문을 돌면서 num_list에 음수가 있는지 확인
     for (let i = 0; i < num_list.length; i++)
         // 음수가 있으면 해당 index 반환 후 종료
         if(num_list[i] < 0) return i;
        // 반복문 종료 후 음수가 없을 경우 -1 반환
             return -1; 
}

처음엔 for문 안에서 if문을 실행 시켰는데 반환이 되지 않았다. 이유는 else 구문이 잘못 사용되었기 때문. 반복문의 첫 번째 반복에서 요소가 양수인 경우 else 블록이 실행되어 -1을 반환하고 함수가 종료되버린다. 즉, 첫 번째 요소만 확인하고 나머지 요소는 확인하지 않는 오류가 있어서 제대로 식이 작동하지 않았던 것.

function solution(num_list) {
    // for문을 돌면서 num_list에 음수가 있는지 확인
     for (let i = 0; i < num_list.length; i++) {
         if(num_list[i] < 0) {
             return i;
         } else {
             return -1; 
         }
     }             
}

위의 식처럼 작성하고 싶으면 아래처럼 수정하면 잘 작동된다. 결국 첫번 째 식과 같은 식인데 지금 쓴 식이 더 내 눈에 잘 들어온다.

function solution(num_list) {
    for (let i = 0; i < num_list.length; i++) {
        if (num_list[i] < 0) {
            return i;
        }
    }
    return -1;
}

0개의 댓글