기본적 포문, 배열과 함께 쓰는 포문
for, while - ~동안 이므로 ; 반복문 ; 핵심적
기초형태
for (초기값; 조건식; 증감식) {
}
ex)
for (let i = 0; i < 10; 1++) { i라는 변수는 0부터 시작할거고, 10에 도달하기 전까지 계속 할거야
console.log(+i); i라는 변수는 한 사이클이 돌고나면 1을 더할거야
}
배열과 for문이 짝궁인 이유
const arr = ["one", "two", "three", "four", "five"];
for (let i = 0; i < arr.length; i++) { i가 0부터 arr.length 보다 작을 때까지
console.log(i); i는 한개씩 증가, console.log에 계속 찍어줄거야
console.log(arr[i]); arr의 i값도 계속 찍어줄거야
} ⬆️의 인덱스에 접근한 것이므로
; 접근하기 편함 => 배열과 for 문은 짝궁
ex) 0~10 의 수 중에서 2의 배수만 console.log로 출력하는 예시
if(let i = 0; i < 11; i++ {
if (i >= 2) { 0은 배수가 아니므로
if (i % 2 === 0 ) { 2의 배수 ; 나눴을 때 0
console.log(i + '는 2의 배수입니다');
}
}
for in 문 - 객체 속성을 출력하는 문법
let person = {
name: "john",
age: 30,
gender: "male",
};
for (let key in person) { let key in 객체 ; 여기서 key는 name, age 등의 키;
console.log(key + ":" + person[key]); name:john
} age:30
gender:male
객체의 벨류에 접근하는 방법 : person[key]
while ; for 문 과 유사 ; ~하는 동안
( for문 : for (초기값; 조건; 증감) {} )
while은 증감을 가지고 메인로직은 돌리며 계속 체크
let i = 0;
while (조건) { while (i < 10) { 처음에 0인 상태에 대입 ; 0
메인로직 console.log(i); 0 찍힘
증감 i++; +1 하고 다시 올라감
}
while 문 활용하여 3초과 100미만의 숫자 중 5배수인 것만 출력
let i = 3; 3초과이니 let부터 3으로 시작해도 될듯
while (i <100) {
if(i%5 === 0 && i >= 5) { 5의 배수 이면서 5보다 같거나 큰
console.log(i + "는 5의 배수입니다.")
}
i++; 이거 해줘야 숫자를 돌림
}
do ~ while ; do 먼저 돌린 후 while
let i = 0;
do {
console.log(i); 먼저 실행 후 최초의 한 번은 무조건 시작 되고,
i++;
} while (i < 10); 그다음 조건이 옴
만약, do while 이 아니라면 i 최초값이 0이라 만족시킬 수 없어서 시작을 할 수 없으니 한 번도 안찍혔을듯
break / continue ; for문과 결합해서 쓰임
break
0부터 10까지 콘솔로그
for (let i = 0; i<11; i++) {
if (i === 5) { i가 5라면
break; break걸어라
}
console.log(i); 결과값은 0 ~ 4
}
continue; break 대신 continue => 0~4, 6~10 찍힘; 5가 찍히면 다음 for 문으로 넘어갔기 때문
for (let i = 0; i < 10; i++) {
if (i === 5) {
continue;
}
console.log(i);
}