Today I Learned/TIL 05
2023 - 05 - 18 반복문 (for문, for~in문, while문, do while문, break문, continue문)
sangwoo_rhie
2023. 6. 1. 07:21
오늘 할일
자바스크립트 1주차 강의 듣기
오늘 배운 것
반복문 (for문, for ~in문, while문, do while문, break문, continue문)
for문과 while 문에서의 if문을 통한 분기처리가 중요하다.
1. for문의 형태
for(초깃값; 조건식; 증감식){
//main logic
}
해석 :
i라는 변수는 0부터 시작, 10에 도달하기 전까지 계속된다. 1사이클이 돌고나면 1을 더한다.
for(let i = 0; i < 10; i++){
console.log(i);
}
// 0 1 2 3 4 5 6 7 8 9
배열과 for문은 짝궁이다. 배열이 주어질 경우 항상 조건식에 length를 쓴다.
그냥 i 는 인덱스값이 몇번째인지만.
Arr[ i ]는인덱스값의 요소를 출력.
const Arr = ['one', 'two', 'three', 'four', 'five'];
for (let i = 0; i < Arr.length; i++) {
console.log(i);
console.log(Arr[i]);
}
console.log(i); / 0 1 2 3 4 (인덱스값이 몇번째인지만 출력)
console.log(Arr[i]); / one two three for five (인덱스값의 요소를 출력)
문제 : 0부터 10까지 수 중 2의 배수만 출력해보시오.
for (let i = 0; i <= 10; i++){
if (i >= 2 && i % 2 === 0){
console.log[i + "는 2의 배수입니다.");
}
}
// 2는 2의 배수입니다.
// 4는 2의 배수입니다.
// 6는 2의 배수입니다.
// 8는 2의 배수입니다.
// 10는 2의 배수입니다.
여기서 console.log에서 인덱스가 몇번째인지가 아닌, 요소자체를 출력해야하므로 대괄호를 쓰는게 맞으나,
인덱스도 0부터 시작하고 요소도 0부터 시작해서 인덱스값이 요소와 동일하므로 대괄호 생략함.
2. for~ in문 (객체 속성을 출력) => 형태 : for (let key in 변수명)
let person = {
name : "john",
age : 30,
gender : "male",
};
for (let key in person){
console.log(key + " : " + person[key]);
}
객체의 value값을 출력하려면 : 객체 대괄호 열고 key입력. -> person[key]이런식으로.
// name : john
// age : 30
// gender : male
3. while문 형태
while (조건){
main logic;
증감식;
}
let i = 0;
while (i < 10) {
console.log(i);
i++;
}
// 0 1 2 3 4 5 6 7 8 9
let count = 0;
while (count < 5) {
console.log(count);
count++;
if (count === 3) {
break;
}
}
// 0 1 2
while문을 활용해서 3초과 100미만의 숫자중 5의 배수를 출력하시오.
let i = 3;
while (i < 100) {
if(i % 5 === 0 && i >= 5){
console.log(i + "는 5의 배수입니다.");
}
i++;
}
// 5부터 95까지 다 나옴. ~는 5의 배수입니다.
4. do while문 형태
일단 한 번은 코드를 실행하고, 그 후에 조건식을 체크하여 반복 여부를 결정한다.
do{
main logic;
증감식;
} while (조건);
// 코드 먼저 실행하고 while문 실행
let i = 0;
do {
console.log(i);
i++;
} while (i < 10);
// 0 1 2 3 4 5 6 7 8 9
5. break문. break를 만나면 for문을 멈춘다. (break문과 continue문은 항상 for문과 함께 쓰임)
0부터 10까지 1씩 늘어나는 for문을 작성하되, 5가되면 멈추세요.
for (let i = 0; i <= 10; i++){
if (i === 5){
break;
}
console.log(i);
}
// 0 1 2 3 4
i가 5가 되면 break시켜라. break를 만나면 for문을 멈춘다.
6. continue문. continue문을 만나면 해당 조건은 스킵하고 넘어간다.
for (let i = 0; i <= 10; i++){
if (i === 5){
continue;
}
console.log(i);
}
// 0 1 2 3 4 6 7 8 9 10
i가 5가 되면 continue해라 (스킵해라.) 5만 스킵하고 다음으로 넘어감.