:단순한 반복을 보다 효율적이고 간결하게 할 수 있도록 함. 코드에서 반복문이 없다면, 우리는 수백만 개의 정보를 처리하기 위해서 수백만 줄의 코드를 작성해야 함.
let sum = 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
console.log(sum)
------> 반복되는 요소
1. 반복할 내용 : sum과 숫자 합을 sum에 대입 :sum = sum + n;
2. 초기화 : n은 2부터 시작 :let n = 2;
3. 조건식 : n은 4가 될때 까지 :n <= 4;
4. 증감문 : n은 1씩 증가 :n = n + 1;
for( 초기화 ; 조건식 ; 증감문 ){ 반복할 내용 }
let sum=1; for(let n=2; n<=4; n=n+1;){ sum=sum+n; } //5
초기화 while( 조건식 ){ 반복할 내용; 증감문 }
let sum=1; let n=2; while(n<=4){ sum=sum+n; n=n+1; } //5 let sum=1; let n=2; while(n<=4){ n=n+1; sum=sum+n; } //13
for 문 : 반복 횟수가 예측 가능할 때
while 문: 반복 횟수를 예측할 수 없을 때. while문은 초기화, 증감문 필요없을 때 씀.
로그인 모듈
(예제)사용자에게 아이디와 비밀번호를 입력받아서 '로그인' 시키는 모듈만들기.
// 로그인 성공 여부를 보관하는 변수
var login = false;
// 최대 다섯 번의 기회를 준다
for (var i = 0; i < 5; i++) {
// 아이디와 비밀번호를 입력 받는다
var id = window.prompt("아이디를 입력하세요");
var password = window.prompt("비밀번호를 입력하세요");
if (id === 'codeit' && password === '4321') {
console.log('환영합니다. ' + id + '님.');
login = true;
break;
} else {
console.log('아이디와 비밀번호가 일치하지 않습니다.');
}
}
// 로그인 성공 여부를 보관하는 변수
var login = false;
// 로그인에 성공할 때까지 반복
while (!login) {
// 아이디와 비밀번호를 입력 받는다
var id = window.prompt("아이디를 입력하세요");
var password = window.prompt("비밀번호를 입력하세요");
if (id === 'codeit' && password === '4321') {
console.log('환영합니다. ' + id + '님.');
login = true;
} else {
console.log('아이디와 비밀번호가 일치하지 않습니다.');
}
}
console.log('before for loop');
for (var i = 1; i < 11; i += 2) {
console.log(i);
}
console.log('after for loop');
//결과 : before for loop, 1,3,5,7,9, after for loop
console.log('before for loop');
for (var i = 1; i < 11; i += 2) {
if (i === 7) {
break;
}
console.log(i);
}
console.log('after for loop');
//결과 : before for loop, 1,3,5, after for loop
// i의 값이 7과 같을 경우 break를 실행하게 된다. break 실행문이 실행되어 for문이 모두 종료되게 되었다.
console.log('before for loop');
for (var i = 1; i < 11; i += 2) {
if (i === 7) {
continue;
}
console.log(i);
}
console.log('after for loop');
//결과 : before for loop, 1,3,5,9, after for loop
// 7일 경우에는 continue구문이 실행되었기 때문에 7일 경우에만 반복구문을 종료하게 되었다.
for(1){
for(2){
break;
}
}
//for(2)만 나온다.