반복문은 주어진 조건식의 평가 결과가 참인 경우 코드 블럭을 실행한 후 조건식을 다시 검사하여 여전히 참인경우 코드 블록을 다시 실행하게 되는데, 이 조건식이 거짓일 때까지 반복된다.
let sum = 1;
sum = sum +2;
sum = sum +3;
sum = sum +4;
"sum과 숫자(n)의 합"을 "sum에 대입"하자 ➜ sum = sum +n;
< 조건 >
숫자(n)는 2부터 시작한다. ➜ let n = 2;
숫자(n)가 4가 될때까지 반복한다. ➜ n <= 4;
숫자(n)는 1씩 증가한다. ➜ n = n+1
✏️ for문
for문은 조건이 거짓으로 판별될 때까지 코드블록을 반복 실행한다.(가장 일반적으로 사용되는 반복문)
for(초기화식, 조건식, 증감식){
조건식이 참인 경우 반복 실행될 문;
}
- 초기식 : 반복의 주체가 되는 변수를 선언
- 조건식 : 반복이 이 조건을 충족할 때만 돌아가게 한다.
- 증감식 : 반복이 한번 수행될 때마다 실행될 연산
for (let i = 1; i<= 2; i++) {
console.log(i);
}
위의 반복문은 변수 i가 1로 초기화된 상태에서 시작하여 i가 2보다 작거나 같을때까지 코드블록을 실행한다.
for(;;){} // 무한루프
❗️ for문 안에 for문을 중첩해서 사용할 수 있다. (이중 반복문)
for(let i=0; i <= 6; i++){
for (let j=0; j <= 6; j++){
if(i + j === 6){
console.log(`${i}, ${j}`)
}
}
}
// 주사위 두개를 던졌을 때, 두 눈의 합이 6이 되는 모든 경우의 수를 출력
❗️ for문은 배열을 순회할 때 유용하게 사용할 수 있다.(순회 : 배열 안에 있는 요소를 한번씩 접근하는 것)
const arr = ["a", "b", "c", "d"];
for (let i = 0; i < arr.length; i++){
console.log(arr[i]);
}
// 결과값
// a
// b
// c
// 객체도 순회할 수 있다.
let person = {
name : "홍길동",
age : 25,
tall : 180
};
// 배열 안에서 key 값들만 뽑아서 배열로 변환시키는 객체의 내장 함수
const personKeys = Object.keys(person);
// object.Keys 함수는 객체 안에 있는 key 값을 순서대로 배열로 반환 받을 수 있다.
for (let i = 0; i < personKeys.length; i++) {
const curKey = personKeys[i];
const curValue = person[curKey];
console.log(`${curKey} : ${curValue}`);
} // key 값 말고 value 값만 받을 수도 있다.
// 결과값
// name : 홍길동
// age : 25
// tall : 180
// 문자열에서 특정 문자의 인덱스(위치)를 검색하는 예
let string = "Hello World.";
let index;
// 문자열은 유사배열이므로 for 문으로 순회할 수 있다.
for (let i = 0; i < string.length; i++) { // 문자열의 개별 문자가 'l'이면
if (string[i] === "l") {
index = i;
break; // 반복문에서 탈출한다.
}
}
console.log(index); // 2
✏️ while문
while문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행하고, 조건문의 평가 결과가 거짓이 되면 실행을 종료한다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제 변환되어 논리적 참, 거짓을 구별한다.
let number = 0;
while (number < 5) { // number이 5보다 작을 때까지 코드 블록을 계속 반복해서 실행
console.log(number);
number++;
}
// 0 1 2 3 4
while (true) {} // 무한루프
무한루프를 탈출하기 위해서는 탈출 조건을 if문에 부여하고 break 문으로 코드 블럭을 탈출한다.
let number = 0;
while(true) {
console.log(number);
number++;
if (number === 5) break;
} // 0 1 2 3 4
'Javascript' 카테고리의 다른 글
원시 자료형(primitive)과 참조 자료형(reference) (0) | 2022.05.12 |
---|---|
배열(Array) (0) | 2022.05.12 |
문자열(String) (0) | 2022.04.30 |
조건문(if) (0) | 2022.04.27 |
함수(function) (0) | 2022.04.26 |