[TIL] Day4

공부중인 개발자·2021년 4월 8일
0

TIL

목록 보기
4/64
post-thumbnail

· What?

반복문

· 오늘 배운것

배운것을 기록은 했으나 틀릴 가능성이 매우 많고 수정할 내용이 대다수입니다.

1. 반복문

  • 반복문: 같거나 비슷한 코드를 여러번 실행시켜야할 경우 쓰는 구문
    -반복할 조건을 코드로 작성
  • for 구문
    반복할 내용을 중괄호 block에 넣어줌
    for(초기화; 조건식; 증감문){}
    초기화: 변수의 값을 '처음'으로 저장
    조건식: 도착점 혹은 반복횟수
    증감문: 값의 변화를 만들어내는 식 for구문의 작동은
    1.초기화
    2.조건식
    • 조건식이 truthy이면 명령문 실행
    • 조건식이 falsy이면 반복문 실행종료

3.조건식이 truthy이고 명령문이 실행되었다면 증감식
4. 다시 조건식

  • 조건식이 truthy이면 명령문 실행
  • 조건식이 falsy이면 반복문 실행종료

반복

for(초기화(1); 조건식(2); 증감문(4)){ //반복할 내용(3)}
조건식이 성립할 경우 1>2>3>4>2>3>4>2... 순으로 진행되며
조건식이 성립되지 않을 경우 1>2 로 끝이나고(조건식이 성립하지 않았기 때문에) 반복문 밖으로 진행된다.

  • while 구문
    반복할 조건 중, 초기화,증감문은 따로, 조건식만 괄호 안에 넣어줌
    초기화
    while(조건식){
    증감문
    }

두가지는 상황에 맞게 사용하면 된다. (초기화나 증감문의 반복이 필요없을 때는 while)

for 와 while의 차이점
for는 보통 횟수가 정해져있는 경우가 많고
횟수가 불분명할때는 while을 이용하는경우가 있다.


반복문 코플릿으로 새로 배운것

  • 문자열을 입력받아 버그('#')의 인덱스를 리턴
    '#' 기호가 없는 경우 undefined를 리턴
function findTheBug(word) {
  for (let i = 0; i <= word.length; i++) {
    if (word[i] === '#'){
      return i;
    }
  } return undefined;
}
  • 홀수인지 확인 reference 영역
function isOdd(num) {
  if(num < 0) {
    num = -num;
  }
  let i = 0;
  while (num !== 1) {
    if(num === 0) {
      return false;
    } num = num -2;
  } return true;
}
  • 홀수인지 확인 내 풀이
function isOdd(num) {
  let i = 0;
  while( 2*i +1 <= Math.abs(num)) {
   if (2*i + 1 === Math.abs(num)) {
      return true;
    } i++
  } return false;
}
  • 두 개의 수를 입력받아 두 수를 포함해 두 수 사이의 수 중 2의 배수의 개수를 리턴
function makeMultiplesOfDigit2(num1, num2) {
  let start = num1;
  let end = num2;
  if (num1 > num2) {
    start = num2
    end = num1
  }
  if (start === 0) {
    start = 1;
  }
  let result = 0;
  for (i = start; i <= end; i++){
    if (i % 2 === 0) {
      result = result + 1;
    }
  }return result;
}

마지막으로...

반복문이 여지까지 배웠던 것 중에서 제일 어려웠고 제일 재밌는 느낌이다 금요일과 주말을 이용해서 배운내용을 복습해야겠다.

참고사이트
https://hianna.tistory.com/370
https://colossus-java-practice.tistory.com/33
https://im-developer.tistory.com/69 [Code Playground]

profile
열심히 공부하자

0개의 댓글