반복문

혀어어언·2023년 3월 19일
0

Let's Get It JS 요약

목록 보기
6/7

반복문(Loop)

while문

  • 조건이 참인 동안 반복해서 실행문을 실행
문법
while(조건식){
  실행문1;
  실행문2;
}
무한반복문
  • 조건이 참이기 때문에 console.log()가 무한히 실행됨
  • 해당 코드를 콘솔에 입력 무한 로그가 찍히다가 어느 순간 웹 브라우저가 멈춤
    • 웹 브라우저 강제 종료해야 함
  • 따라서 프래그래밍할 때 이런 무한 반복의 상황을 방지해야 함
> while(true){
  	console.log('hello while!');
}
유한 반복문
> let i = 0;
  while(i < 100){
    console.log(i);
    i++;
  }

for문

문법
for(시작; 조건식; 종료식){
  실행문;
}
반복문 실행 순서
  • 시작 > 조건식 > 실행문 > 종료식 이후 조건식 > 실행문 > 종료식으로 반복
  • 참고로 for문의 시작, 조건식, 종료식은 생략 가능
> for(let i = 0; i < 100; i++){
  	console.log('hello, for!')
}

// 조건을 생략하는 경우
for(;;){}
// 조건이 무조건 true이기 때문에 무한반복

1부터 100까지 출력하기

while문
> let i = 0;
	while(i < 100){
    i++;
    console.log(i);
  }
for문
> for(i = 1; i < 101; i++){
  	console.log(i)
}

//1부터 100까지 중 짝수만 출력
> for(i = 1; i < 101; i++){
  	if(i%2 === 0 ) console.log(i)
}

> for(i = 0; i < 100; i+= 2){
  	console.log(i+2)
}

//1부터 100까지 중 홀수만 출력
> for(i = 0; i < 100; i += 2){
  	console.log(i+1)
}

break문으로 반복문 멈추기

  • 반복문을 돌릴 대상이 무한히 많은 경우, 반복문을 돌리다가 원하는 값을 찾는 경우 반복문을 멈춰야 함
  • 멈추지 않는 경우 반복문이 실행되는 동안 다음 코드를 실행할 수 없고 찾은 값 또한 사용할 수 없음
  • 이럴 때 break문으로 반복을 멈춰주자
> let i = 0;
	while(true){
    if(i === 5) break;
    i++;
  }
console.log(i);	// 5
// 반복문이 실행되는 동안 다음 코드가 실행되지 않으므로 
// 반복문에서 break 됬을 때의 i 값인 5만 콘솔에 출력됨

continue 문으로 코드 실행 건너뛰기

  • 반복문이 특정조건에서만 실행되기를 원하는 경우 continue문 사용
  • continue문이 실행되면 이후의 실행문은 건너뛰게 됨
> let i = 0;
	while(i < 10){
    i++;
    if(i % 2 === 0 ){	//짝수만
      continue;	// 건너뛰기
    }
    console.log(i);
  }
// 1
// 3
// 5
// 7
// 9

중첩 반복문 사용하기

  • 반복문 안에 반복문이 들어가 있는 경우
for (let i = 0; i < 10; i++){
  for(let j = 0; j < 10; j++){
    console.log(i,j)
  }
}
// 0 0
// 0 1
// 0 2
// ....
// 0 9
// 1 0
// ....
// 1 9
// ....
// 2 0
// ...
// 9 9
  • 3번 중첩되는 중첩 반복문
for(let i = 0; i < 5; i++){
  if(i % 2 === 0) continue;
  for(let j = 0; j < 5; j++){
    if(j % 2 === 0) continue;
    for(let k = 0; k < 5; k++){
      if(k % 2 === 0) continue;
          console.log(i,j,k);
        }
    }
}
// 1 1 1
// 1 1 3
// 1 3 1
// 1 3 3
// 3 1 1
// 3 1 3
// 3 3 1
// 3 3 3
  • 홀수 결과만 나오는 구구단을 continue문으로 작성해보기
> for(let i = 0; i < 10; i++){
		if(i % 2 === 0 ) continue;
    for (let j = 0; j < 10; j++){
    	if(j % 2 === 0) continue;
    	console.log(`${i} * ${j} = `,i * j)
  	}
	}

> for(let i = 0; i < 10; i++){
  	for (let j = 0; j < 10; j++){
    	if(i % 2 === 0 || j % 2 === 0) continue;
    	console.log(`${i} * ${j} = `,i * j)
  }
}
별찍기
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
*
**
***
****
*****
> for(i = 0 ; i < 5; i++){
		console.log('*'.repeat(i+1));
	}
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
*****
****
***
**
*
>	for(i = 0; i > -5; i--){
  	console.log('*'.repeat(i + 5));
	}

>	for(i = 0; i < 5; i++){
  	console.log('*'.repeat(5 - i));
	}
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
*
***
*****
*******
*********
> for(i = 0; i < 10; i += 2){
  console.log('*'.repeat(i + 1));
}
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
*********
*******
*****
***
*
> for(i = 0; i < 10; i += 2){
  	console.log('*'.repeat(9 - i));
}
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
*****
 ****
  ***
   **
    *
> for(i = 0; i < 5; i++){
  	console.log(' '.repeat(i) + '*'.repeat(5-i));
}
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
  *
 ***
*****
 ***
  *
> for(i = 0; i < 5; i += 2){
  	const countOfEmptyString = ' '.repeat()	//흐음...고민해보자...
  	console.log(countOfEmptyString + '*'.repeat(i+1)) + countOfEmptyString;
}

2 1 2
1 3 1
0 5 0
1 3 1
2 1 2
  • 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
    *
   ***
  *****
 *******
*********

0개의 댓글