반복문 for loop

수툴리 양·2021년 5월 14일
0

1. 반복문 for, while

💭 Issues

  • 무엇을 반복할 것인가?
  • 원하는 출력값은 무엇인가?
  • 반복할 조건은 무엇인가?
  • 조건에 걸릴 경우/ 벗어날 경우마다 무엇을 리턴할 것인가?

if loop는 팽이다

자연의 팽이는 스스로 멈추지만,
코드 속 팽이는 신호를 줘야한다.
윙가르디움 레비오사라든지, 주문을 외워야 한다.
그렇지만 돌긴 돈다!

while은 초기값, 증감문이 필요없을 때 쓴다.
for문의 사용법때문에 자꾸 헷갈리는 지점 같은데,
while속 반복될 내용은 알아서 그냥 알아서 돈다!

어떤 수를 입력받아 그 수가 홀수인지 그 여부를 리턴하는 함수를 선언하라.

Error ver.
function isOdd(num) {
  if (num<0) {
    num = -num
  }
  if (num===0) {
    return false
  }
~~  let i = 0 ;
  while(num>=0) {
    num = num - i*2;
    i++;
  }
  if (num === 1) {
    return true;
  }~~
}

무엇이 무엇이 잘못되었을까?

correcting ver.
while(num >= 0){
  (..)
  num = num -2
}
정답을 쓸 수는 없으니, 힌트만 (나를 위해) 제공한다.
제발, while은 알아서 돈다고!
🙄 while 팽이는 알아서 돈다, 알아서 돌 동안에는 꼬아서 생각하면 팽이가 망가지든지, 영원히 돌든지 개미지옥에 빠진다

참고만 하기. for 아니고 if와 while을 비교..
💡 What is difference between if statement and while loop?

don't over think it. what does if mean in the real world? a one-time decision. same in PHP. make a decision once, move onwards. what does while mean in the real world? "until some condition becomes satisified, continue doing this..." same in PHP. – Marc B Jan 30 '13 at 14:47 stackoverflow


✮ 팩토리얼(n!), 수열의 합(∑) 등 누적은 이중 loop로 해결되는 편이다(?)

문득 구글링했다가 등차수열, 등비수열 이런걸 다시금 머릿속에 넣어야하는 거니? 이건 산수차원이 아니다. 실생활에 이런 계산은 이제 은행원도 안하는 시대야!

예를 들어,
A. 문자열을 입력받아, 문자열의 첫 문자(글자)부터 한 문자씩 늘린 문자열을 모두 붙여 출력하는 함수를 선언하라.

let output = functionblahblah('velog') = 'vvevelvelovelog' 

B.
문자열을 서로 바꾸어 재출력하는 함수;
number 타입을 입력받아 소수를 모두 출력/ 약수의 합을 출력하는 함수;
두 수를 포함하여 그 사이의 소수(홀수 / ~~ anything can be)의 개수를 구하는 함수;
.. more

예제 A)
예제 B)

tip 💡

✮ 어떠한 반복적인 조건으로 새로운 문자열을 출력해야 할 때, 빈 문자열을 새로 변수에 선언 및 할당해서 넣어주면 어떨까?
✮ while은 초기값이나 조건이 필요없을 때 편하게 쓰면 된다. i의 도움 필요 없이 알아서 2씩 계속 뺄셈을 해주거나, 등등

반복문 응용 잘 하려면 어떻게 해야 할까요?

아래 두 가지 경우에 대해서 잘 설명할 수 있어야 합니다.

  • 반복문에 if문 여러개 넣어서 잘 작동시키기
    조건에 해당할 때만 반복하도록 for loop 내 if걸기 ↩︎
  • 반복문을 원하는 때 멈추고 (break), 진행시킬 수 있는지 (continue)
    조건에 해당하지 않을 때 반복을 종료하여 최적화시킴 ↩︎
profile
developer; not kim but Young

0개의 댓글