일전의 포스트에서 if 문 때문에 울 뻔 했다고 한 적이 있다.
그건 한치 앞을 못 본 자의 망언이었다. 앞으로 울 일이 한 바가지임을 모르고...
for문은 기본적으로 반복문이다.
무슨말이냐면 반복적으로 같은 명령을 수행하는 함수이다.
하나하나 같은 일을 하지 않도록, 자기가 반복적으로 그 일을 해 주는 것이다.
예시를 들어보자.
let menu = ["국밥","파스타","버거","김밥","계란말이"];
파스타를 먹었을 때에 "맛있겠네요!" 라고 alert를 띄우고 싶은데,
세상엔 맛있는게 너무 많고, 그러면 배열 내에 변수가 너무 많고, 그 코드를 일일히 치려면 코드가 엄청 길어질 것 같다.
let lunch = "파스타";
if (menu[0] === lunch) {
alert("맛있겠네요!");
} else if (menu[1] === lunch) {
alert("맛있겠네요!");
} else if (menu[2] === lunch) {
alert("맛있겠네요!");
} ...
이렇게 계속 반복되어서 모든 지구촌 음식을 다 넣으려면 정말 화가 잔뜩 날 것이다.
바로 이 때 for문이 우리를 구제 해 줄 수 있다.
for (let i =0; i < menu.length; i++) {
if (menu[i] === lunch) {
alert("맛있겠네요!");
}
}
해석 해보자
for (let i = 0; /// i 라는 변수에 0을 대입
i < menu.length; /// menu의 길이보다 i의 값이 작을때까지
i++ // i 에 1을 더한다.
)
for (반복조건) {
//반복조건이 맞으면 실행할 코드
}
let menu = ["국밥","파스타","버거","김밥","계란말이"];
let lunch = "파스타";
for (let i =0; i < menu.length; i++) {
if (menu[i] === lunch) {
alert("맛있겠네요!");
}
}
i 가 0이면, menu[0]과 lunch를 비교한다.
"국밥" === "파스타" 틀리므로, if문을 실행하지 않고 끝난다.
그 다음, i 가 1 일 경우를 대입하여
menu[1] 과 lunch 를 비교한다.
"파스타" === "파스타"
같으므로 if문을 실행시켜, "맛있겠네요!" 라는 알림을 띄운다.
이렇게 i 가 메뉴의 끝 배열까지 돌며 if조건을 확인하고 끝이 난다.
이 대장정이 for문의 도움으로 쉽게 끝이난다. 좋은 친구이다.
i 에는 꼭 0이 들어가야 하는 것은 아니며, 다양한 반복조건을 만들 수 있다.
예)
for ( let i = 2 ; i < 10; i +2 )
//해설: i 에게 2를 할당; i가 10보다 작을때까지(10보다 크지 않을때까지); i를 2씩 증가시킨다. ;
혹은
for ( let i = 100; i > 10 ; i-- )
//해설: i에 100 할당; i가 10보다 클 때 까지(10보다 작지 않을때까지);i 에서 1씩 감량;
이런 다양한 조건들도 충분히 가능하다 .
위에서 '배열명'.length 라는 표현을 봤다.
이는 배열의 길이를 알려주는 메소드이다.
배열의 길이를 알 수 없을 때 도움이 되는 메소드이다.
for문과 찰떡궁합인 메소드이고
앞으로도 사용이 잘 될 것이기 때문에 꼭 기억해두도록 하자