2017-09-11 6 views
-5

내가 (아주) 최근에 파이썬을 공부 한 후에 JS를 시작했고 CodeCademy 연습을 마친 후에 잠시 동안 루프를 조금씩 시도해 보았습니다.JavaScript While 루프

이 구문은 곧 코스에서 다루어 지겠지만, 내 코드가 무한 루프를 던지는 이유가 궁금합니다. 확실하게 3 '후 우리는 나중에 먹을 수있다!'(6,7,8)와 '먹을 시간'후에 루프가 깨져야한다. (9)?

나는 그것이 옳을 수는 없다는 것을 알고 있지만 그것이 왜 그렇게 보이지는 않는지 알고 있습니다.

+0

종이와 펜을 들고 각 실행 단계를 적어주세요. – deceze

답변

2

당신이

if (hungerLevel > 7) { 
    console.log('Time to eat!'); 
} 

에 들어갈 때 8hungerLevel 때문에 나머지 시간은 당신의 hungerLevel 숙박을 증가 결코 당신이 무한 루프를 얻을 수 있기 때문에. 이 같은

을 사용하면, 당신은 hungerLevel를 증가하고 때마다

let hungerLevel = 5 
 

 
while (hungerLevel < 9) { 
 
    if (hungerLevel > 7) { 
 
    console.log('Time to eat!'); 
 
    } else { 
 
    console.log('We can eat later!');  
 
    } 
 
    hungerLevel += 1; 
 
}

+0

감사합니다. 그건 실수 한 롤 이었어. – TheJack

2

에게 증가하는 경우에만이 7 이하이다. else 블록 이후에 hungerLevel += 1;으로 이동해야합니다.

+0

와우, 내가 어떻게 그리워 했니? - .- – TheJack

0

당신은에서 당신의 증가를 이동하는 데 필요한 if 문

while (hungerLevel < 9) { 
    if (hungerLevel > 7) { 
    console.log('Time to eat!'); 
    } else { 
    console.log('We can eat later!'); 
    } 
    hungerLevel += 1; 
} 
0

특정 값으로 증분 시작하는 변수를 사용하는 경우, 각 루프 동안 그것을 증가, 그리고 그것을 종료 값에 도달하면 확인하십시오 for 루프가 작업에 적합한 도구입니다.

for (let hungerLevel=5; hungerLevel < 9; hungerLevel++) { 
    if (hungerLevel > 7) { 
    console.log('Time to eat!'); 
    } else { 
    console.log('We can eat later!'); 
    } 
}