작성
·
569
답변 1
0
안녕하세요?
for 문과 while 문은 모두 반복 작업을 위해 사용되지만 둘의 사용처는 다음과 같이 조금 다릅니다.
for 문 : 반복 횟수가 명확한 작업
while 문 : 반복 횟수가 명확하지 않은 작업
가령 어느 장소에 물건이 가득 담긴 종이 박스 10개가 있는데 이것들을 트럭에 옮겨야 합니다. 박스는 부피도 있고 무게도 있어서 한 번에 하나씩만 옮긴다고 가정할게요. 그러면 총 몇 번 반복해야 할까요? 그렇습니다. 10번입니다. 10개의 박스를 한 번씩, 총 10회에 걸쳐서 하면 되므로 이는 for 문에 적합한 작업입니다.
이번에는 어느 큰 대야에 물이 가득 차 있다고 해보겠습니다. 이 물을 작은 바가지로 다른 곳에 있는 큰 대야로 옮겨야 합니다. 그러면 총 몇 번 반복해야 할까요? 그렇습니다. 알 수 없습니다. 바가지의 크기는 정해져 있고 물의 양도 정해져 있지만 물이라는 것은 이동 중에 쏟을 수도 있고 항상 바가지에 물을 가득 담을 수는 없으므로 정해진 횟수로 가늠하기는 어렵습니다. 그저 '다 옮길 동안' 계속해서 반복해야 하는 것이죠. 이는 while 문에 적합한 작업입니다.
놀이기구는 어떨까요? 한 번에 10명씩만 탑승할 수 있는 놀이기구가 있습니다. 안내원은 매회 10명씩 앉을 수 있도록 안내를 해야겠죠. 10명보다 더 많은 손님을 태울 수는 없을 것입니다. 이는 for 문에 적합한 작업입니다.
엘리베이터는 어떨까요? 엘리베이터는 허용 중량이 정해져 있습니다. 보통 몇 인승 또는 몇 kg 과 같이 중량 제한을 표기하고 있지만 일반적으로는 엘리베이터에 더 이상 사람이 탈 공간이 없을 때까지 탑승합니다. 덩치가 큰 사람이 탄다면 상대적으로 적은 수가, 덩치가 작은 사람이 탄다면 상대적으로 많은 수가 탈 수 있겠네요. 이는 while 문에 적합한 작업입니다.
실생활의 예를 통해 for 문과 while 문의 차이를 이해하시면 자바에서도 유사하게 활용이 가능합니다. 가령 크기가 정해져 있는 배열의 요소를 순회 한다거나, 횟수가 정해진 작업을 할 때는 for 문을 사용하시면 되구요. 횟수 무관하게 특정 조건을 만족하는 동안 계속해서 작업을 할 때는 while 문을 사용하시면 됩니다.
혹시 설명이 이해되지 않으신다면 다시 질문을 남겨주시면 다른 방법으로 설명드리겠습니다 😊
감사합니다.