javascript

for문과 while문

노엠디엔 2022. 11. 10. 16:17

컴퓨터에게 반복 작업을 시키는 것은 간단하다. 반복 작업 코드를 복사해서 붙여 넣으면 된다.

하지만 그 코드가 무수히 많아지고 반복되는 코드라면 분명 나중에 문제가 될 것이다.

이때 활용하는 것이 반복문이다.

 

for in 반복문

배열과 함께 사용할 수 있는 반복문은 for in 반복문이 있다. 배열의 요소를 하나하나 꺼내서 특정 문장을 실행할 때 사용한다.

for in문 사용법

for반복문의  반복 변수(위의 코드에서 i)에는 요소의 인덱스들이 들어온다. 이를 활용해서 배열 요소에 접근할 수 있다.

하지만 for in 문은  사진과 같이 사용해야 안정적인(예상에서 벗어나지 않는) 형태로 쓸 수 있는 조금은 위험한 반복문이라고 한다.

frtuis.hasOwnProperty

fruits라는 배열의 hasOwnProperty라는 메소드를 사용해서 해당 배열이 i번째의 요소가 있는지 확인을 한 다음에  요소가 있다면

내가 작성한 코드를 실행시키는 것이다.

 

for of 반복문

for of 반복문은 요소의 값을 반복할 때 안정적으로 사용할 수 있다. 

for of 문

for in 문에서는 좀 위험하게 작동할 수 있던 부분이 for of 문에서는 더 쉽게 사용 가능하다.

 

for 반복문

일반적인 for 반복문은 특정 횟수만큼 조건을 주어서 결과가 참인 경우 코드 블록을 실행한다.

 

for(변수 선언문 또는 할당 문;  조건식;  증감식) {

   조건식이 참인 경우 반복 실행될 문

}

 

for 문

사진과 같이 for문의 반복문은 i = 0부터 시작을 하고 i가 1씩 증가하면서 3 미만 즉 2가 될 때까지 총 3번 실행한다.

for문을 작성할 때 주의사항으로 변수를 let키워드로 선언해줘야 한다.

const로 선언할 시에 타입 에러가 발생한다

TypeError: Assignment to constant variable.

값을 재할당할 수 없는 변수에 값을 재할당하려고 시도했기 때문이다.

 

다음으로 var를 변수로 for문을 돌리게 됐을 때를 살펴보자

let 변수로 for를 실행했을때

 

사진과 같이 let으로 i를 선언한  for문 밖에서 i를 찍어보려 했을 때 오류가 발생한다.

for문 밖에서 i에 접근할 수 없기 때문이다.

다음은 var로 변수를 할당했을 때이다.

위 사진에서 변수 i의 값은 for 루프가 끝난 다음에도 유지가 된다. 왜냐하면 var로 선언한 변수는 let과 const와는 다르게 변수가 선언될 때 다르게 동작하는데  block레벨이 아닌 function 레벨에서 범위가 정해지기 때문이다.

또 var를 사용하면  var 호이스팅 이라는 문제도 있는데  var호이스팅은 다른 예제에서 살펴보는 것이 좋을 것 같다. 

결론적으로  for 문 안에서 var로 선언한 변수 block을 벗어나서 값이 유효하게 된다

그러니 var로 선언하는 것은 좋은 방법이 아닌 것 같다.

 

while반복문

while 반복문은 if 조건문과 형태가 비슷한 반복문으로 while문에서 사용되는 조건식의 결과가 참이면 코드를 계속해서 실행시킨다.

for문은 반복 횟수가 명확할 때 주로 사용하고 while문은 반복 횟수가 불명확할 때 주로 사용한다.

 

while(boolean 표현식) {  //조건식

   실행할 코드

}

 

만약 while반복문의 경우 조건이 변하지 않는다면 무한히 반복 실행하므로 조건을 거짓으로 만들 수 있는 내용이 문중에 포함되어 있어야 한다.

이렇게 반복문이 무한 반복되는 것을 무한 루프라고 부른다.

무한 루프

사진과 같이 while 문에서 반복이 중단되는 코드를 넣어주지 않는다면 계속해서 실행하게 된다.

 

while문을 종료할 수 있는 상황

위 사진과 같이 i라는 변수에 0 숫자 값을 넣어 선언하고 배열 array에 1, 2, 3, 4 숫자 요소를 넣은 길이가 4인 배열 선언

while 반복문의 조건식을 보면 i 가 array.length 보다 작을 때까지만 실행 즉 i 가 3 일 때까지만 실행한다. 총(4번)

이렇게 되면 총 4번의 코드가 실행 뒤에 while문은 종료하게 된다.

 

 

'javascript' 카테고리의 다른 글

함수 문제 풀기  (0) 2022.11.11
break 와 continue 키워드  (0) 2022.11.10
비파괴적 처리와 파괴적 처리  (0) 2022.11.08
if 문 과 switch 문 그리고 삼항 연산자  (0) 2022.11.08
Null 과 Undefined 와 NaN  (0) 2022.11.07