티스토리 뷰

while문의 기본 구조는 이렇습니다.

// while문 (while statement)
while (조건부분){
 동작부분
}

while이라는 키워드 다음에 조건 부분을 작성한 다음 동작 부분을 작성해줍니다. 구조만 보면 for문보다 훨씬 더 if문과 비슷한 모양입니다. 동작하는 방식도 if문과 닮았습니다.

if문과 다른 점은 당연히 for문과 마찬가지로 반복문이니까 한번 실행하기 시작하면 조건 부분이 충족되지 않을 때까지 동작 부분을 계속 반복한다는 것입니다.

특별한 경우가 아니라면 while문과 for문은 대부분 서로 대체가 가능합니다.

//while문 (while statement)
let i = 1;

while (i <= 10){
	console.log(`${i} 코드잇 최고!`);
    i++;
}

for (let i = 1; i <= 10; i ++){
	console.log(`${i} 코드잇 최고!`);
}

먼저 while문에는 초기화 부분이 없기 때문에 반복에 필요한 횟수를 카운트하려면

반복문 밖에서 글로벌 변수를 미리 만들어줘야 합니다.

그리고 나면 while 반복문을 만나게 되는데 조건 부분은 for문과 동일하게 작성을 하게 되고

반복 횟수를 증가시키는 부분도 while문에는 추가 동작 부분이 없기 때문에 동작 부분 안에서 작성해주면 됩니다.

저장하고 실행하면 똑같이 10번 반복하는 것을 확인할 수 있습니다.

 

구조로 보면 while문이 좀 더 간결해 보이지만

반복 횟수를 저장할 변수를 while문 밖에서 만들어줘야 하고

실제로 카운트하는 동작도 동작 부분 안에서 작성해야 하기 때문에

오히려 for문이 가독성 측면에서는 더 간결해지는 경우가 많습니다. 

// while문 (while statement)
let i = 30;

while ( i % 7 !==0 {
	i++;
}
console.log(i);

위 코드는 while문을 통해 i보다 큰 수 중에서 가장 작은 7의 배수를 찾는 코드입니다.

가장 먼저 변수 i를 선언하고 30을 할당해줍니다.

그러면 30보다 큰 수 중에서 가장 작은 7의 배수를 찾게 됩니다.

while문이 시작되면 30인 i가 조건 부분에서 평가가 되는데

나머지 연산자를 계산하면 30을 7로 나누면 몫이 4고 나머지는 2가 됩니다.

2는 0과 일치하지 않기 때문에 true가 돼서 i가 1이 증가하게 됩니다.

i가 35가 되는 순간에는 조건이 false가 되고 반복문이 종료됩니다.

그러면 그동안 증가한 i가 콘솔에서 출력되는데 저장하고 실행해보면 35가 잘 출력이 되는데 

 

코드를 자세히 살펴보면 반복문 안에서 변수를 만들어 주는 것이 아니라

반복문 밖의 글로벌 변수를 가지고 조건을 평가하고 반복문 안에서도 이 변수를 다루고 있습니다.

그리고 반복문이 다 실행되고 난 뒤에 반복문 밖에서 이 값을 사용하고 있습니다.

 

물론 이 코드를 for문으로도 충분히 만들 수는 있지만 for문은 보통 조건 비교에 사용되는 값을 반복문 내부에서만 사용하고 반복이 끝나면 외부에서는 사용할 수 없기 때문에 글로벌 변수를 조건 비교하여 사용하고 반복문 내부에서도 다루면서 결과적으로 반복문이 종료된 다음에도 이 변수를 사용해야 될 때는 for문보다 while문을 활용하는 것이 좋습니다. 상대적으로 for문보다 사용빈도가 낮지만 상황에 따라서는 while문을 활용하는 것이 조금 더 효율적일 수 있습니다.

'프론트엔드 > JavaScript' 카테고리의 다른 글

[객체] 09. for...in 반복문  (0) 2022.10.01
[제어문] 16. break와 continue  (1) 2022.09.30
[제어문] 10. for문 Tip  (0) 2022.09.28
[제어문] 09. for문  (0) 2022.09.27
[제어문] 07.switch문 vs if문  (0) 2022.09.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함