: 같거나 비슷한 코드를 여러 번 실행시켜야 할 경우에 쓰는 구문이다.
반복문을 코드로 작성하는 방법
let sum = 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
console.log(sum);
1. 반복할 내용을 먼저 코드로 작성한다.
'sum과 숫자(n)의 합'을 'sum에 대입'하자 -> sum = sum + n;
2. 반복할 조건을 코드로 작성한다.(조건문)
숫자(n)는 2부터 시작한다. -> let n = 2;
숫자(n)는 4가 될때까지 반복한다. -> n <= 4;
숫자(n)는 1씩 증가한다. -> n = n+1;
3. 새로운 문법에 대입한다 ( for구문 등등)
for 구문
1. 반복할 내용을 중괄호 block안에 넣어준다
let sum = 1;
for() {
sum = sum + n // 반복할 내용
}
console.log(sum)
2. 반복할 조건을 초기화, 조건식, 증감문 순으로 넣어준다.
let sum = 1;
for(let n = 2; n<=4; n = n+1) { //***조건문 쓸때 n도 선언해줘야한다.
sum = sum + n // 반복할 내용
}
console.log(sum) // 10
3.연습 - 아래 콘솔 출력을 다섯번 반복해서 찍기 위해 필요한 조건은?
for(let n=1; n<=5; n = n+1 ){
console.log('hello world');
}
while 구문
: 반복할 조건중, 초기화,증감문은 따로, 조건식만 괄호 안에 넣어준다.
let sum = 1;
let n = 2; //초기화 및 선언.. n은 for문이던, while문이던 함수와 다르게 선언해줘야한다.
while(n <= 4){
sum = sum + n;
n = n + 1; // 증감문
}
console.log(sum); // 10
% for문 대신에 while문을 쓸수 있고 반대도 당연히 가능하나, 초기화나 증감문이 필요없는 경우에 while 사용한다.
실습
> 함수를 이용한 구구단 출력
let num = 3;
function mulTablePrinter(num){
console.log(num * 1);
console.log(num * 2);
console.log(num * 3);
console.log(num * 4);
console.log(num * 5);
console.log(num * 6);
console.log(num * 7);
console.log(num * 8);
console.log(num * 9);
}
> 반복문을 이용한 구구단 출력
1.
for(n = 1; n<= 9; n+1){
console.log(num * n)
}
2. 몇단의 구구단을 출력할지 결정하는 변수 num은 함수 실행 시 인자로 받아온다
function mulTablePrinter(num){
for(n = 1; n<= 9; n+1){
console.log(num * n)
}
}
mulTablePrinter(3); // 3단 실행
> 이중 반복문을 이용한 구구단 출력 : 인자로 전달되고 있는 2부터 9까지의 숫자도 반복문으로 표현하여 2단부터 9단까지의 구구단 한번에 출력
function mulTablePrinter(){
for(let n = 2; n<=9; n = n + 1){
for(let m = 1; m <= 9; m = m + 1){
console.log(n * m)
}
}
}
mulTablePrinter()
> 2 * 2 = 2 형식으로 템플릿 리터럴을 이용하여 구구단 출력해보기!
function mulTablePrinter(){
for(let n = 2; n<=9; n = n + 1){
for(let m = 1; m <= 9; m = m + 1){
console.log(`${n} * ${m} = ${n * m}`)
}
}
}
mulTablePrinter()
function makeDigits(num) {
let result = '';
for (let i = 1; i <= num; i++) {
result = result + String(i); -> Q
} ....//
Q. let result = 숫자 0; 이여도 String생성자가 있어 result + 숫자+문자열로 되어서 1호출할떄 문제없을텐데 왜 안될까?
A. 콘솔에 함수 호출하면 0숫자는 문자열 취급되어서 makeDigits(1) // '01'
function makeLastSeenMsg(name, period) {
let num1 = parseInt(period)
if( //....
}else if(1 <= (num1/1440) && (num1/1440) < 31){ ....//
-> 마지막 조건 부분이 해결되지 않았는데, 원래는 ' 1 <= (num1/1440)< 31 '이렇게 써서 안됬었다. 부등호 조건 전체가 or이 적용되는지, and인지 확인할수 없어서 조건 제대로 만족 할수 없기때문에 생각한데로 나오지 않는다