반응형
첫번째는 대부분의 작업에 사용하는 for 문이다
for (초기;조건;증감){
작업
}
초기 : 어디서 부터 시작할껀가?
조건 : 어디서 중단할껀가?
증감 : 얼마 만큼 증가하거나 감소 할껀가?
이런느낌이고
작업 : 이쪽에는 반복적인 작업을 해야하는것을 넣어주면 된다
두번재는 while 문이다
for 문 처럼 많이 사용하지는 않고 몇번 반복될지 모를때 사용한다
let i = 0
while(조건){
명령
}
while 문은 for문과는 다르게 초기가 없고 조건 명령 밖에 없다 명령 안에 증감도 써줘야함
세번째는 재귀함수다
재귀함수는 자기 자신을 계속 호출해서 반복적인 작업을 하는 것이 재귀함수이다
그럼 일단 간단하게 하나의 예제를 만들어 보겠다
function fac(n){
if(n === 1 || n === 0){
return 1
}else{
return n * fac(n-1)
}
}
일단 이 함수는 팩토리얼을 구하는 함수이다
함수가 시작하는 if 부터 확인 해보자
n이 1 또는 n이 0일때
1을 반환을 한다
else문으로 넘어가서
매개변수 n 곱하기 함수 fac를 불러오는데 어떻게 불러오냐?
매개변수를 1을 뺀다
매개변수 n에는 정수가 들어올것이고
만약 4가 들어왔다고 가정을 하자
function fac(n){
if(n === 1 || n === 0){
return 1
}else{
return n * fac(n-1)
}
}
자 n은 4다
4는 1이나 0이 아니니까 패스 해서 else문으로
4 * fac(4-1)
여기서 4 * fac(3)이 된다
그럼 계속해서 가보자
4*fac(4-1)
3*fac(3-1)
2*fac(2-1)
이렇게 쭉쭉 가다가
이제 1이 될것이다 그럼 if문에서 1이니까 1을 반환을 할것이다
4*fac(4-1)
3*fac(3-1)
2*fac(2-1)
1
4*3
3*2
2*1
1
이런식으로 되는데 결국엔 24가 나온다
하지만 이렇게 풀수있다고 해서 재귀를 많이 사용하라는 뜻은 아니다 재귀는 결국엔 함수를 계속적으로 호출하게
되므로 리소스를 많이 소모한다 재귀를 사용하지 않고 할수있는 문제는 재귀를 사용하지 않는것이 좋다
반응형
'js' 카테고리의 다른 글
개발자 도구로 알아보는 문자타입 숫자형 변환법 & 숫자타입 문자형 변환법 (0) | 2020.10.28 |
---|---|
내가 생각하고 있는 함수 (0) | 2020.10.26 |
배열안에 원하는 값을 찾아서 반환하기 (0) | 2020.10.23 |
문자열 찾기 (0) | 2020.10.21 |
두정수사이의합 (0) | 2020.10.21 |