TIL23.for문 활용하기

조연정·2020년 9월 16일
0
post-thumbnail

for문을 활용해서 배열 안의 가장 작은 숫자를 찾아보자.

for문을 사용해서 배열 값 중 가장 작은 숫자를 리턴해주는 함수를 구현해주세요.

function findSmallestElement(arr) {
  let smallestNumber = arr[0];

  for (i = 0; i < arr.length; i++) {
    if (smallestNumber > arr[i]) {
      smallestNumber = arr[i];
     }
  }
 return smallestNumber;
} 

findSmallestElement([9, 10, 200, 5, 300, 70]);
//expected output 5

목표

배열 안의 숫자 중 두 숫자를 비교해서 작은 쪽을 변수(가장 작은 숫자) 안에 지정해준다. for문을 이용해서 변수가 배열 안의 또 다른 숫자와 계속해서 비교할 수 있다. 더 작은 숫자가 나타날 경우, 변수가 갈아치워진다. 이 과정을 반복해서 가장 작은 숫자를 찾는다.

코드 진행과정

1.smallestNumber라는 변수를 배열(arr)의 [0]로 할당해준다.
2.if문에서 변수가 arr[i]보다 큰지 비교해준다.
3. Ⅰ.변수가 작다면, false이기때문에 성립되지않고, 바로 함수를 나간다.
Ⅱ.arr[i]가 작다면, 이를 변수smallestNumber에 재할당해준다.
4.재할당된 변수는 for문 밖에서 새로운 변수smallestNumber 된다.
5.다음 index의 요소가 변수와 작은지 비교한다.
6.만약 작다면, 그 요소를 새로운 변수로 지정해준다.

❓❗️

  • 변수 smallestNumber 초기값을 arr[0]으로 할당한 이유 - 인덱스 1,2..로 줘도 상관이 없지 않을까 싶어서 실험을 해봤는데 결과는 같았다. 하지만, 배열의 요소가 하나인 경우, 성립되지 않는다.
  • for문 에 변수를 지정해줘야 하는 이유 - 새로운 값으로 변수가 할당되어도 다시 for문이 실행되면 새로운 arr[]이 될 수 있다.
profile
Lv.1🌷

1개의 댓글

comment-user-thumbnail
2020년 9월 19일

너 좀 이제 한다?

답글 달기