반복문 기초2 - while
while 반복문은 조건 체크를 먼저하는 while 과 조건 체크를 나중에 하는 do ~ while 2가지로 나뉩니다.
do ~ while 반복문은 조건 체크가 나중에 있는 만큼 무조건 1번은 반복 실행문이 실행되는 차이가 있습니다.
기본적으로는 while 문을 사용하며, 무조건 1번은 실행하는 조건이 있는 반복 처리시 do ~ while 문을 선택적으로 사용합니다.
두 반복문의 구조는 다음과 같습니다.
while(참/거짓 조건식){ //반복 실행문}
do{ //반복 실행문}while(참/거짓 조건식)
두 반복문으로 배열을 순환해서 콘솔에 요소를 출력하는 예를 들어보겠습니다.
let friends = [ {name: '라이언', age: 5}, {name: '어피치', age: 4}, {name: '콘', age: 2}, {name: '무지', age: 3}];
let i = 0;while(i < friends.length){ console.log('이름: ' + friends[i].name + ', 나이: ' + friends[i].age); i++;}
i = 0;do{ console.log('이름: ' + friends[i].name + ', 나이: ' + friends[i].age); i++;}while(i < friends.length)
2가지 타입의 while 문은 기본적으로 동일한 구조입니다.
다만, 배열 등을 순환할 때 인덱스 값의 증가는 반복문 안에서 반드시 처리를 해주어야 하며, 여러개의 while 문을 같은 인덱스 변수를 사용할 경우 반드시 사이에 초기화를 다시 해주어야 합니다.
구조가 단순한 만큼 사용자가 추가적으로 처리해주어야 하는 추가 작업이 있고, 그런만큼 자유도가 더 높은 장점이 있습니다.
while 문을 실행하는 중간에 반복문을 빠져나가고 싶은 경우
조건 실행문 안에서 조건을 확인해 "break;" 문을 추가하면 강제로 while문을 종료하고 빠져나갈 수 있습니다
let friends = [ {name: '라이언', age: 5}, {name: '어피치', age: 4}, {name: '콘', age: 2}, {name: '무지', age: 3}];
let i = 0;while(i < friends.length){ if(i > 2){break;} console.log('이름: ' + friends[i].name + ', 나이: ' + friends[i].age); i++;}
이렇게 구현한 경우 배열의 4번째 요소는 콘솔에 출력되지 않고, while 반복문을 빠져나가게 됩니다.