보통 for문과 while문의 차이라고 하면 for문은 특정 범위 안(특정 횟수)에서 반복하는 것이고, while문은 조건이 참인 동안에 반복을 한다고 합니다.
python 같은 경우에는 이 설명에 딱 맞는데, C언어나 JAVA는 초기식, 조건식, 증감식 생략으로 무한 루프로 돌릴 수도 있고, 아니더라도 while문과 같은 방식?으로 코드를 반복하는 게 가능합니다. 그 역으로 for문 코드를 while문으로 변환해서 사용하는 것도 가능하고요.
그렇다면 굳이 for문과 while문 두 개가 존재하는 이유는 무엇일까요? 처음에는 for문은 일단 한 번은 실행하지만 while문은 조건이 거짓이면 아예 실행을 하지 않는 게 차이라고 생각했는데 for문도 조건식 부분을 손 보면 아예 실행하지 않는 게 가능하고....
아무리 생각해도 차이점을 모르겠네요. 예전에 테스트해봤을 때는 둘이 실행 시간에도 차이가 없었던 것으로 기억합니다.