while 반복문 | do while 반복문 |
while(boolean 표현식){ true일 때 반환될 문장; } |
do{ 반환될 문장; } while(boolean 표현식); |
while 반복문은 if 조건문과 형태가 비슷하다, 차이점은 if 조건문은 문장을 한번만 실행하고 끝나지만 while 반복문은 boolean 표현식이 true인 동안 지속적으로 문장을 실행한다. 조건이 변하지 않는다면 반복문 안을 무한히 반복실행 하게 된다. 따라서 조건을 거짓으로 만들 수 있는 내용이 문장 안에 포함되어야 한다.
while(true){ alert('무한 반복') } |
위의 반복문은 실행하면 무한히 반복이 되는 코드이다. while 반복문을 종료하려면 조건을 변화시킬 수 있는 요소가 필요하다.
let number=0; while(number<5){ alert(number+'번째 반복문'); number++; } |
위 처럼 내부의 조건을 변화시켜서 반복문을 빠져나가게 해야 무한 루프로 반복문을 실행하지 않게 한다.
do while문은 while문과 비슷하지만 조건을 비교하는 부분이 마지막에 위치해 있다. while 반복문과는 다르게 문장을 적어도 한 번 실행하고 조건을 비교한다.
while 반복문 | do while 반복문 |
let a=1; while(a<5){ alert(a+"번째 반복문"); a++ } |
let a=1; do{ alert(a+'번째 반복문'); a++ } while(a<5); |
기본적으로 while 반복문이 do while 반복문보다 사용빈도가 압도적으로 많다, do while 반복문은 꼭 한 번은 실행해야 하는 특수한 경우에만 사용한다. do while 반복문에서 가능한것은 while 반복문으로도 대부분 구현이 가능하다.
for 반복문 | for in 반복문 |
for(초기식; 조건식; 종결식;){ true일시 반환될 문장; } |
for(let i in array){ } |
while 반복문은 조건에 비중을 두는 반복문이고, for 반복문은 조건보다 횟수에 비중을 둘 때 사용하는 반복문이다. while 반복문과는 다르게 초기식과 종결식이 존재한다. for 반복문에서 가장 먼저 초기식이 한 번 실행된 후 조건을 비교하고, 이때 조건식이 거짓이라면 반복문을 빠져나온다. 조건식이 참이라면 문장을 실행하고 종결식을 실행한 후 다시 조건식을 비교한다. 정리하면,
1. 초기식을 실행한다.
2. 조건식을 비교하고, 조건이 거짓이면 반복문을 종료한다.
3. 문장을 실행한다.
4. 종결식을 실행한다.
5. 반복문이 다시 실행된다.
for(let i=0; i<5; i++){ alert(i); } |
for 반복문 초기문 안에서 선언하는 변수는 i, j ,k, m, n과 같이 식별자를 간단하게 한글자로 만드는 것이 일반적으로 쓰인다.
let arr=['포도', '사과', '바나나', '파인애플']; for(let i=0; i<arr.length; i++){ alert(arr[i]); } |
편집기 툴을 이용해서 for를 타이핑하고 shift같은 전용키를 누르면 for문이 자동으로 완성이 되는데 보통은 for(var 1 = 0; i < length; i++)같은 형태를 가지고 있는데 이것은 단순 for 반복문이라고 한다. 0으로 시작해서 length 바로 전까지 반복 실행하는 이유는 배열의 인덱스가 0에서 시작을 하기 때문이다. 위의 있는 코드는 배열의 요소를 모두 출력해주는 for 반복문이다.
while 반복문 | for 반복문 |
let i=0; let startTime=new Date().getTime(); while(new Date().getTime() < startTime + 1000){ i++ } alert(i); |
let startTime=new Date().getTime(); let i=0; for(i=0; new Date().getTime() < startTime + 1000; i++){} alert('초 당 연산 횟수 : '+ i); |
while 반복문과 for 반복문을 같이 써보면 서로 비슷한 점이 많다. for문은 또 외부에서 조건을 변경 할 수도 있다. while 반복문을 for 반복문으로 바꿀 수 있고 그 반대도 가능하다. 외에도 역 for 반복문도 존재한다.
1. for 반복문 : for(let i=0; i<length; i++){ }
2. 역 for 반복문 : for(let i=length-1; i>=0; i--){ }
for in 반복문은 객체(object)나 배열(array)를 쉽게 다루기 위해 사용한다. 배열 내부에 있는 요소를 출력, 객체 내부에 있는 요소를 출력한다.
for 반복문 | for in 반복문 |
let arr=['과자', '사탕', '젤리']; for(let i=0; i<arr.length; i++){ alert(arr[i]); } |
let arr=['과자', '사탕', '젤리']; for(let i in arr){ alert(arr[i]); } |
배열과 객체에서는 for in을 사용하면 획기적인 방법으로 줄일 수 있다. 또한 for of 반복문도 있다.
let arr=['과자', '사탕', '젤리']; for(let item of arr){ alert(item); } |
for in 반복문과 형태가 비슷하다. for of 반복문은 특정 브라우저에는 지원을 하지 않는다. for in이나 for of은 코드는 깔끔하게 사용하려고 만든 것이다. 배열, 문자열등의 반복을 돌릴때 사용한다.
중첩 반복문은은 중첩 조건문과 같게 반복문을 여러 개를 중첩해 사용하는 것이다.
break 키워드는 switch 조건문에서 언급했듯이 switch 조건문이나 반복문을 벗어날 때 사용하는 키워드이다. 예를 들어 while(true)를 입력하면 조건이 항상 참이므로 무한 반복이 일어난다. 이러한 무한 루프는 break 키워드를 사용해야 벗어날 수 있다.
for(let i=0; true; i++){ alert(i+"번째 반복문입니다."); if(!confirm("계속하시겠습니까?")){ break; } } alert("프로그램 종료"); |
와 같이 i 번째 반복문입니다가 true 이기 때문에 무한 반복이 일어나를 것을 if !confirm과 break를 이용해서 확인을 누르면 한번 더 반복을 취소를 누르면 break로 반복문이 종료되게 할 수 있다.
continue는 반복문 안에 현재 반복 작업을 멈추고 다시 반복문의 처음으로 돌아가 다음 반복 작업을 진행 시키는 키워드다.
for(let i=0; i<5; i++){ continue; alert(i); } |
위의 코드를 실행하면 alert(i);가 작동을 하지않는데, 이유는 continue를 만나서 다시 반복문이 실행이 되어서 alert(i);가 건너 뛰어졌기 때문이다.
let output=0; for(let i=0; i<=10; i++){ if(i%2==1){ continue; } output+=i; } alert(output); |
1부터 10까지의 짝수의 합을 구하는 코드이다. 홀수일 때는 continue 키워드를 만나 바로 다음 반복 작업으로 넘어가기 때문에 짝수의 합만 구해진다. break와 continue 키워드를 사용하면 코드가 간결해 진다. 하지만 남용을 하지않는게 좋다.
'프로그래밍 공부 > JavaScript' 카테고리의 다른 글
JavaScript - for 반복문 / while 반복문을 이용한 별찍기 (0) | 2019.11.30 |
---|---|
JavaScript - 반복문 연습문제 (0) | 2019.11.30 |
JavaScript - 배열 (0) | 2019.11.28 |
JavaScript - 조건문 연습문제 (0) | 2019.11.28 |
JavaScript - 조건문 (0) | 2019.11.28 |