<자바스크립트 정리 15 for문>

강민수·2021년 11월 29일
0

리플릿 정리- javscript

목록 보기
15/16

1. For문은 왜 쓰나?

우리가 프로그래밍을 배우는 이유에는 단순 반복적인 작업을 최대한 줄이기 위해서다.

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

let home = "서울";

if (cities[0] === home) {
alert("아, 여기 사시는군요");
} else if (cities[1] === home) {
alert("아, 여기 사시는군요");
} else if (cities[2] === home) {
alert("아, 여기 사시는군요");
} else if (cities[3] === home) {
alert("아, 여기 사시는군요");
}

-> 뭐 이정도면 굳이 for문 쓸 필요는 없다!!!!

그런데…..

let home = "서울";

if (cities[0] === home) {
alert("아, 여기 사시는군요");
} else if (cities[1] === home) {
alert("아, 여기 사시는군요");
}

// cities[2] ... cities[47] 까지 계속..
else if (cities[48] === home) {
alert("아, 여기 사시는군요");
} else if (cities[49] === home) {
alert("아, 여기 사시는군요");
}

-> 이렇게 조금만 많아도
for문 역시 그래서 태어난 함수다.

2. for문의 형태 및 사용법

for (반복조건) {
// 반복조건이 맞으면 실행할 코드
}

-> 여기서 i는 보통 배열의 인덱스를 뜻한다. 그리고 i의 범위는 보통, 해당 배열의 길이보다 작다.

3. 다양한 반복문의 활용

더 다양한 반복조건문들.

for (var i = 2; i < 10; i = i + 2)
다른 것은 비슷해 보이는데, 증가 값이 i++ 으로 1씩 증가하는게 아니라 i = i + 2 .

  • i 는 2부터 시작하여
  • 10보다 작을 때까지
  • 2씩 증가 시키면서 for 문을 돌린다.
  • i 가 2,4,6,8 으로 2씩 증가하며 for 문을 총 4번 반복.
  • i 도 for 문을 돌며 계속 변한다.
  • for 문 조건의 마지막에 i = i + 2는 원래의 i 에 2씩 더한다는 뜻이므로 for 문이 한 번 돌 때마다 i 는 2씩 증가.

또 다른 예시.

for (var i = 10; i > 7; i--)

  • i 는 10부터 시작하여
  • 7보다 클때까지 (7보다 클 동안만)
  • 1씩 감소하면서 for 문 안의 코드를 실행합니다.
  • i 가 10, 9, 8 으로 1씩 감소하며 for 문을 총 3번 반복합니다.

4. 배열의 길이와 반복문의 관계

let cities = ["서울", "대전", "대구", "대전", "광주", "대전"];
console.log(cities.length) // cities 배열의 요소는 총 6개 이므로 6 이라는 숫자가 반환.

for (var i = 0; i < cities.length; i++) {
if (cities[i] === home) {
alert("아, 여기 사시는군요");
}
}

  • for (var i = 0; i<cities.length; i++)
  • 가운데 비교연산자를 주의. <= 가 아닌 < 를 사용하고 있다.
  • 배열의 길이는 6 이므로 총 6번의 반복문이 실행.
  • i 는 0부터 5까지 총 6번이 실행되어야 하므로 배열의 길이보다 작을때까지 반복문을 실행.
  • 만약 <= 작거나 같다는 비교연산자를 사용하면
  • i 는 0,1,2,3,4,5,6 까지 실행되어 총 7번의 반복문을 실행.

활용예제

findSmallestElement 함수를 구현.

  • findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 배열.
  • arr 의 값들 중 가장 작은 값을 리턴. -> 반복문 실행.
  • 만일 arr 가 비어있으면 0을 리턴. -> 조건문 실행.
  • 예를 들어, 다음과 같은 배열이 인자(input)으로 들어왔다면 1이 리턴 되어야 한다.

[20, 200, 23, 1, 3, 9]
function findSmallestElement(arr) {
  // your code here
  if(arr.length === 0){.   -> 0 리턴. 
    return 0;
  }
  else{
 let minNum= arr[0] // 비교 대상 설정. 어떤 값이 가장 작은 지 모르는 상태에서 배열의 첫번째 값을 가지고 비교 폴루프를 돌린다. 
  for(let i=0; i<arr.length; i++){
    if(arr[i]<minNum){	-> 폴루프를 돌리면서 뒤의 값들과 비교를 하면서 minNum이 더 작으면 살아남지만, minNum보다 큰 순간 그 i번쩨의 값이 새로운 minNum이 된다. 
      minNum=arr[i]
    }
  }
return minNum}
}
let min = [ 2, 4, 5, -2, -12]
console.log(findSmallestElement(min)) -> return = -12
_~~~~
코드를 입력하세요
profile
개발도 예능처럼 재미지게~

0개의 댓글