특정 조건이 충족될 때까지 작업이 반복되는 반복문
- for 반복문은 괄호 내에서 ;로 나눠진 세가지 표현식으로 나타낼 수 있음
- 첫번째는 initialization으로 iterator variable을 선언함
- 두번째는 stopping condition
- 세번째는 iteration statement
for (let counter = 0 ; counter < 4; conter++) {
console.log(counter);
}
//output : 0 1 2 3
배열문의 stopping condition을 지정할 시, .length를 활용하면 좋다
const colors = ['blue', 'white', 'gray'];
for (let i = 0; i < colors.length; i++) {
console.log(colors[i]);
}
//output : blue white gray
for문 안에 for문을 넣기
let myfollowers = ['Marco', 'Gemma', 'Serena', 'Alberto'];
let vincifollowers = ['Guido', 'Serena', 'Marco'];
let ourfollowers = [];
for (let i = 0; i < myfollowers.length; i++) {
for (let j = 0; j < vincifollowers.length; j++) {
if (myfollowers[i] === vincifollowers[j]) {
ourfollowers.push(myfollowers[i]);
}
}
}
console.log(ourfollowers);
//output : ['Marco', 'Serena']
while반복문은 루프 전에 변수가 선언되며, 블록 내에 iteration statement를 선언해줘야함. 만약 그렇지 않을 경우 항상 초기값을 갖게 되므로 루픅 무한루프에 빠지게 됨
for (let count = 1; count < 4; count++){
console.log(count);
}
let count = 1;
while (count < 4) {
console.log(count);
count++;
}
const card = ['heart', 'diamond', 'spade', 'club'];
let mycard;
while (mycard != 'spade') {
mycard = card[Math.floor(Math.random() * 4)];
console.log(mycard);
}
📢 while과 for를 언제 나눠서 사용할까?
for문은 루프가 실행되어야하는 횟수를 알고 있을 때 사용하지만,
while문은 얼마나 실행되어야할 지 결정되지 않았을 때 사용하며 주로 조건에 따라 반복할 때 사용
- while문과 do-while문의 차이점은 조건을 먼저 검사하느냐, 나중에 검사하느냐의 차이
- 중괄호 블럭을 먼저 한번 실행하고, 조건을 검사하여 반복을 결정함
do{
조건식이 참이면 실행할 명령
}
while(조건식)
let result = '';
let i = 0;
do {
i = i + 1;
result = result + i;
} while (i < 5);
console.log(result);
// output: 1 2 3 4 5
반복문을 완전히 중지시키는 키워드
for (let i = 0; i < 99; i++) {
if (i > 2 ) {
break;
}
console.log('Banana.');
}
console.log('Orange you glad I broke out the loop!');
/*output:
Banana.
Banana.
Banana.
Orange you glad I broke out the loop! */
지금 것만 skip하고 바로 다음 step으로 넘어가는 것
for (let i = 0; i < 11; i++) {
if (i % 2 !== 0) {
continue;
}
console.log(i);
사실 continue를 이용하지 않고 실제로는 간단히 식을 만듦
for (let i = 0l i < 11; i ++) {
if (i % 2 === 0) {
console.log(i)
}
}
for (let i = 0; i < 11; i++) {
if (i > 8) {
break;
}
console.log(i);
}