javascript

[JavaScript] 반복문

iiixyn 2022. 12. 17. 22:50

🔶 for in 반복문

for (const 반복변수 in 배열 또는 객체) {

  문장

}

 

<script>
	const todos = ['우유 구매', '업무확인하기', '필라테스']
    for (const i in todos) {
    	console.log(`${i}번째 할 일: ${todos[i]}`)
       }
</script>

/* 
0번째 할 일: 우유 구매
1번째 할 일: 업무확인하기
2번째 할 일: 필라테스
*/

for in은 반복변수에 인덱스가 들어간다.

내부에 요소를 사용하려면 fruits[i]와 같은 형태로 사용하며, 안정성을 위해 몇가지 코드를 더 추가하여야 한다.

🔶 for of 반복문

값을 반복할 때 안정적으로 사용 가능

 

for (const 반복변수 of 배열 또는 객체) {

  문장

}

 

<script>
	const todos= ['우유구매', '업무확인', '필라테스']
    for(const todo of todos) {
    	console.log(`오늘의 할일: ${todo}`)
    }
</script>

 

🔶 for 반복문

for(let i = 0; i < 반복횟수; i++) {

 문장

}

 

특정횟수만큼 반복하고 싶을 때 쓰는 범용적인 반복문, 다른 반복문과 달리 let 사용

<script>
	for (let i=0; i<5; i++){
    	console.log(`${i}번째 반복입니다.`)
    }
</script>

 

🔶 while 반복문

if문과 형태가 매우 비슷한 반복문

if조건문과 다른 점 - 문장을 한번만 실행하고 끝나지 않고 불 표현식이 true이면 계속 실행

 

while (불표현식) {

 문장

 

조건이 변하지 않으면 무한 반복되므로 조건을 거짓으로 만들 수 있는 내용이 문장에 포함되어 있어야 한다.

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

 

<script>
	let i = 0
    while(confirm('계속 진행하시겠습니까')) {
    	alert(`${i}번째 반복입니다.`)
        i= i+1
    }
</script>

while 반복문에 confirm()함수를 넣어 확인을 누르면 true가 되어 반복문을 계속 실행하고 취소를 누르면 false로 반복을 종료한다.

 

🔶 break

while(true) {

}

break

<script>
	for(let i = 0; true; i++){
    	alert(i+'번째 반복문입니다')
        
        const isContinue = confirm('계속하시겠습니까?')
        	if(!isContinue) {
        		break
        	}
        }
        
        alert('프로그램 종료')
</script>

confirm() 함수의 확인 버튼을 누르면 true 값이 반환되므로 !isContinue 논리부정연산자 사용

 

🔶 continue

반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행.

 

<script>
	for(let i=0; i<5; i++) {
    	continue
        alert(i)
    }
</script>

//continue를 만나면 다음 반복작업으로 넘어가므로 alert() 실행하지 않음
<script>
	let output=0
    
    for(let i=1; i<=10; i++){
    	if(i%2 ===1) {
    	continue
     	}
     output += i
     }
     
  	alert(output)
</script>

--> 홀수일 때 continue를 만나 다음으로 넘어가므로 짝수 합만 구해진다.

실행결과 = 30

 

🔶 중첩 반복문

<script>
	let output = ''

	for(let i=1; i<10; i++) {
    	for(let j=0; j<i; j++) {
        	output += "*"
        }
      output += '\n'
	 }
     
     console.log(output)
</script>

-->