자바스크립트 기초문법5 -반복문-

1. while

 

조건문이 참이기만 하면 문장을 계속 수행함

 

while (조건문) {

<조건이 참이면 수행>

}

 

 

 

2. for문

 

특정한 조건이 거짓으로 판별될 때까지 반복함

 

for (<초기문>; <조건문>; <증감문>) {

<조건이 참인 동안에만 반복>

}

 

 

반복문 for (let i = 0; i < 6; i++)를 진입하면, 먼저 변수 let i = 0을 선언한다.

 

그 후 조건문 i < 6;을 평가하고, 참이면 코드 블럭을 수행

 

다음 코드 블록 수행 후에, i++를 수행하여 i를 증가시킴

 

위 과정을 반복

 

참고로 초기 선언을 반드시 let이나 var로 해줘야함

 

for (let i = 0; i < arr.length; i++) {}의 경우에, 최초 정의한 let i = 0을 재할당해서 i = 1, i = 2, ...로 증가시키므로,

 

재할당 불가능한 const를 사용하면, 에러

 

 

 

3. for in

 

객체(object)의 속성을 순회할때 사용함

 

 

객체의 key값을 접근하지, value에 접근하지는 않는다

 

for (variable in object) {<statement>}

 

속성의 이름으로 순회함

 

그래서 딕셔너리 순회할때 적절

 

 

단순 배열을 순회하면, index로 순회해버려서 value를 부르지 않는다

 

그리고 인덱스 순으로 순회한다는 보장도 없어서???? 권장하지는 않는데

 

아무튼 중요한게 배열의 진짜 value를 가져오지는 않는다

 

 

 

4. for of

 

반복 가능한 iterable 객체를 순회할때 사용한다

 

Array, Set, String 등등

 

for in이 배열의 원소 이름인 index를 가져오는것과는 다르게 배열의 실제 value를 가져온다

 

 

따라서 object가 아닌 array같은 iterable한 것에 순회하기에 적합하다

 

심지어 of로는 딕셔너리 순회도 못하네

 

 

for in과 for of는 const number of numbers같이 const를 사용하고 있는데... 이는 재할당이 아니고 해당 변수를 새로 정의해서 사용하므로 에러가 발생하지 않는다

 

 

continue???

 

파이썬처럼 continue도 존재함

 

for (초기;조건;증감) {코드블럭continue}에서 초기 > 조건검사 > 코드블럭 > 증감으로 가는데,

 

코드블럭을 만나다가 continue를 만나면 수행하지 못한 코드블럭의 나머지 부분은 전부 건너뛰고, 증감으로 바로 간다

 

기능이 파이썬이랑 똑같

 

 

반복문 내부의

 

break도 마찬가지로, 해당 반복문을 탈출하는데 프로그램의 흐름이 복잡하다고 사용을 권장하지는 않는다

 

그리고 조금 특이한건 중첩된 반복문을 한번에 빠져나오게 할수도 있다

 

 

 

반복문 옆에 label문이라고 label을 붙이면.. 기본적으로는 break를 만나면 해당하는 반복문을 탈출하지만

 

 

break outer;라고 한다면, outer라고 이름이 붙은 외부 반복문을 한번에 빠져나간다

 

복잡해질 우려가 있어서 사용을 권장하지는 않는다고함

 

 

 

 

https://velog.io/@sebellko/5.-%EC%A0%9C%EC%96%B4%EB%AC%B8

 

[Javascript] 5. 제어문

내가 이해한대로 정리한 내용이니 정확하지 않을 수 있다. 😉 제어문 5.1 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 5.2 조건문 조건문

velog.io

 

 

 

 

 

 

TAGS.

Comments