while 과 for 반복문
while 과 for 반복문
반목문 사용할 경우 동일한 코드 여러 번 반복
‘while’
` while (condition) { // 코드
// body } ` condition(조건)이 truthy 이면 반복문 코드 실행 반복문 조건엔 비교뿐 아니라 모든 종류 표현식, 변수 올 수 있음 조건은 while 에 의해 평가되고 평가 후 불린 값 반영
- 반복문 본문이 한 번 실행되는 것을 반복(iteration) 이라고 부름
- 반복문이 영원히 반복되는 경우 그것을 막기위해 브라우저에서 실질적인 수단 제공
- body 가 한 줄이면 대괄호 쓰지 않아도 됨
do…while 반복문
condition 아래로 옮길 수 있음
` do {
// body
} while (condition) ` 본문이 먼저 실행 되고 조건 확인한 후 조건이 truthy dls 동안에 본문 계속 실행
- 본문 최소한 한번이라도 실행 하고 싶을 때만 사용
- 대다수의 경우 do…while 보다 while(…) {…} 이 적합
‘for’
`
for (begin; condition; step) {
// body
}
` begin : 반복문에 진입할 때 단 한 번 실행 condition : 반복마다 해당 조건 확인. false 일 시 반복 멈춤 body : condition 이 truthy 일 동안 계속 실행 step : 각 반복의 body 실행된 이후 실행
알고리즘은 begin 한 차례 실행 이후, condition 확인과 body, step 반복 실행
- 인라인 변수 선언 for 문의 begin 에서 변수를 선언 하는 것을 말 함 이렇게 선언 할 시 반복문 안에서만 접근 가능 정의되어 있는 변수 도 사용 가능
구성 요소 생략하기
for 문 구성요소 생략 가능 반복문 시작할 때 아무것도 할 필요 없을 시 begin 생략 가능 step 도 생략하고 body 에서 가능
반복문 빠져나오기
특별 지시자인 break 사용 시 반복문 빠져나올 수 있음
` while(condition) {
if(condition) {
break;
}
} ` if 문의 condition 이 truthy 일 시 해당 반복문 빠져 나옴
- 반복문의 시작이나 끝이 아닌 본문 가운데 혹은 본문 여러곳에서 조건 확인 시 무한 반복문 + break 조합 사용하면 좋음
다음 반복으로 넘어가기
특별 지시자인 continue 사용 시 전체 반복문 멈추지 않고 현재 실행 중인 이터레이션 멈추고 다음 이터레이션 강제 실행
-
현재 반복문 종료시키고 다음 반복으로 넘어갈 때 사용
-
continue 중첩 줄이는 데 도움 if 문 안에 코드 길어지면 가독성 떨어짐 continue 로 줄이기 가능
-
’?’ 오른쪽에 break 나 continue 올 수 없음 표현식이 아닌 문법 구조는 삼항 연산자 ‘?’ 에 사용할 수 없음 특히 break 나 continue 같은 지시자 사용하면 문법에러 물음표 연산자 if 문 대용으로 쓰지 말아야 하는 이유
break/continue 와 레이블
레이블은 반복문 앞에 콜론과 함께 쓰이는 식별자
` labelName: for(…) {
if (...) break labelName;
}
`
break labelName 은 labelName 이 붙은 반복문을 찾고 해당 반복문 빠져나오게 해줌 제어 흐름 밖으로 이동
-
레이블을 별도의 줄에 ㅅ쓰는 것도 가능
-
continue 지시자 레이블과 함께 사용 시 레이블이 붙은 반복문의 다음 이터레이션 실행
-
레이블은 마음대로 ‘점프’ 할 수 있게 하지 않음 break와 continue 는 반복문 안에서만 사용할 수 있고 레이블은 반드시 break 나 continue 지시자 위에 있어야 함
전위, 후위 연산자에 따른 ‘while’, ‘for’
while 문과 for 문의 경우 step 파트에서 연산자가 전위/후위 에 따라 다른 결과값 나타냄
- while
` let i = 0;
while (++i < 5) alert(i) // 마지막 alert(4)
`
위와 같은 전위 연산자의 경우 먼저 연산작업을 안 뒤 while 로 condition 판정하므로 마지막 alert는 4
` let i = 0;
while (i++ < 5) alert(i) // 마지막 alert(5) ` 위와 같은 후위 연산자의 경우 while 문으로 condition 을 판정한 후 연산작업 실시하므로 마지막 alert는 5
- for
`
for (let i = 0; i < 3; i++) {
alert(i) // 마지막 alert 2
}
`
`
for (let i = 0; i < 3; ++i) {
alert(i) // 마지막 alert 2
}
` for 문의 경우 알고리즘에 따라 begin 실행, condition 확인, body 실행, step 실행이므로 전위/후위 에 따른 결과값이 같음
요약
- while/for 는 같은것 같으면서도 다름
- while 문은 condition 확인 후 body
- do...while 문은 최초에 본문 한번 실행 후 condition 확인
- for 문은 while 문과 비스하지만 알고리즘이 다름
- 필요에 따라 for 문의 경우 상황에 따라 구성요소 생략 가능
- break 는 전체 반복문 종료
- continue 는 해당 이터레이션 종료 후 다음 이터레이션 강제 실행
- 레이블은 continue, break 함께 사용해야 하며 붙은 반복문 통제 가능
출처 : https://ko.javascript.info/while-for