JavaScript - for 문

HYUK·2022년 12월 27일
0

1. for 문의 사용법

for 문을 사용하면 코드를 원하는 만큼 반복시킬 수 있습니다. 실행 조건에 따라 언제부터 언제까지 반복하게 될 것이라고 알려주기만 하면 됩니다.

const count = 1;

for (let i = 0; i <= 5; i++) {    
  count = count + 1;
}

  • i는 0부터 1씩 증가하면서 0, 1, 2, 3, 4, 5까지 증가합니다.
  • i 가 5가 될때까지 for 문의 {} 안을 실행하다가, 6이 되면 i <= 5 라는 식은 false 가 됩니다. (6 > 5)
  • 따라서 {} 내부로 들어가지 못하고, {} 밖으로 벗어납니다.
  • 그렇다면 i 가 0, 1, 2, 3, 4, 5 일 때 실행하게 되니 for 문이 총 6번 실행됩니다.
  • 즉, 0부터 5까지 1씩 증가 시키면서 for 문의 {} 내부를 실행하라는 뜻입니다.

2. 반복문 내부의 조건문

const home = "서울";
const cities = ["서울", "대전", "대구", "부산", "광주", "제주도"];

for (let i = 0; i <= 5; i++) {
  if (cities[i] === home) {     
    console.log(home + "시민");
  }
}
  • i 가 0일 때, cities[0] 과 home 을 비교합니다.
  • "서울" === "서울"
  • 조건이 true이기 때문에 if문이 {} 내부의 로직이 실행됩니다.
  • 그 다음, i 가 1이 증가하여 i 가 1이 되면, cities[1] 과 home 을 비교합니다.
  • "대전" === "서울"
  • 조건이 false이기 때문에 if문 {} 내부로 들어가지 않고 i가 0일때의 for문은 끝납니다.
  • 이렇게 i가 5가 될 때까지 if 조건을 확인하며 for문이 실행되고, 마지막으로 종료 조건을 만족하면 반복이 마무리됩니다.

만약 배열이 아래와 같았다면 console.log가 세번 실행될 것입니다.

const cities = ["서울", "대전", "서울", "부산", "서울", "제주도"]; 
// for 문에서 i 가 0, 2, 4일 때 if 문이 실행된다.

3. 반복문의 다양한 활용

for (let i = 2; i < 10; i = i + 2)
  • i 는 2부터 시작합니다.
  • 그리고 10보다 작을 때까지,
  • 2씩 증가(i = i + 2) 시키면서 반복합니다.
  • 즉, i 가 2, 4, 6, 8 과 같이 2씩 증가하며 총 4번 반복합니다.
for (let i = 10; i > 7; i--)
  • i 는 10부터 시작합니다.
  • 7보다 클때까지 (7보다 클 동안만)
  • 1씩 감소하면서 반복합니다.
  • 즉, i가 10, 9, 8과 같이 1씩 감소하며 총 3번 반복합니다.

4. 반복문과 배열

대부분의 경우 배열의 길이가 얼마나 되는지 알지 못합니다. 직접 배열을 생성하지 않고 외부에서 받아오는 경우가 있고, 또 너무 배열이 길어서 길이를 직접 셀 수 없는 경우도 있습니다.
이러한 경우, 배열의 길이가 얼마나 되는지 알 수 있는 방법이 있습니다. 배열의 길이를 알면 그만큼 for 문을 반복하면 되겠죠. 배열은 length 라는 속성을 가지고 있습니다.

const cities = ["서울", "대전", "대구", "부산", "광주", "제주도"];

console.log(cities.length) 
// cities 배열의 요소는 총 6개이기 때문에, 6이라는 숫자가 반환

for (let i = 0; i < cities.length; i++) {
   if (cities[i] === home) {
     console.log(home + "시민");
   }
}
  • 가운데 비교연산자를 주의하세요. <= 가 아닌 < 를 사용하고 있습니다.
  • 배열의 길이는 6 이므로 총 6번의 반복문이 실행되어야 합니다.
  • i 는 0부터 5까지 총 6번이 실행됨으로 배열의 길이보다 작을때까지 반복문을 실행합니다.
  • 만약 <= 작거나 같다는 비교연산자를 사용하면, i 는 0,1,2,3,4,5,6 까지 실행되어 총 6번이 아닌 7번의 반복문을 실행합니다.

Assignment

findSmallestElement 함수를 구현해 주세요.

  • findSmallestElement의 인자로 받는 arr는 숫자 값으로만 이루어진 배열입니다.
  • arr의 값들 중 가장 작은 값을 반환해주세요.
  • 만일 arr가 비어있으면 0을 반환해주세요.
  • 예를 들어, 다음과 같은 배열이 인자로 들어왔다면 1이 반환되어야 합니다.
[20, 200, 23, 1, 3, 9]
function findSmallestElement(arr){
	if(arr.length === 00){
    	return 0;
    }else{
    	let small = arr[0];
        for(let i=0; i<arr.length; i++){
        	if(small < 20){
            	small = arr[i];
            }
        }return small;
    }
}

console.log(findSmallestElement([20, 200, 23, 1, 3, 9]))

for문에서부터 확인하면

  • 0번째 배열은 20이기때문에 if문의 조건성립이 안돼기때문에 if절 타지않음, (20<20)
  • 1번째 배열은 200이기때문에 if문의 조건성립이 안돼기때문에 if절 타지않음, (200<20)
  • 2번째 배열은 23이기때문에 if문의 조건성립이 안돼기때문에 if절 타지않음, (23<20)
  • 3번째 배열은 1이기때문에 if문의 조건성립 돼기때문에 if절을 탐, (1<20)
  • 4번째 배열은 3이고 위에 3번째에서 if문의 조건성립이 돼어 여기부터 small = arr[i] 이게 적용돼어 small은 1로 적용되어 for문이 돌게된다. 그래서 if문이 성립이 안돼기때문에 if절 타지않음, (3<1)
  • 5번째 배열은 23이기때문에 if문의 조건성립이 안돼기때문에 if절 타지않음, (9<1)
profile
step by step

0개의 댓글