반복문(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(;;){}
1부터 100까지 출력하기
while문
> let i = 0;
while(i < 100){
i++;
console.log(i);
}
for문
> for(i = 1; i < 101; i++){
console.log(i)
}
> for(i = 1; i < 101; i++){
if(i%2 === 0 ) console.log(i)
}
> for(i = 0; i < 100; i+= 2){
console.log(i+2)
}
> 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);
continue 문으로 코드 실행 건너뛰기
- 반복문이 특정조건에서만 실행되기를 원하는 경우
continue
문 사용
continue
문이 실행되면 이후의 실행문은 건너뛰게 됨
> let i = 0;
while(i < 10){
i++;
if(i % 2 === 0 ){
continue;
}
console.log(i);
}
중첩 반복문 사용하기
for (let i = 0; i < 10; i++){
for(let j = 0; j < 10; j++){
console.log(i,j)
}
}
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);
}
}
}
- 홀수 결과만 나오는 구구단을
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
- 아래와 같이 출력되도록 별을 찍는 반복문을 작성해보자
*
***
*****
*******
*********