3 minute read

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

Categories: ,

Updated: