while 또는 for를 사용하는 대신 루프가 계속 호출되어 계속 호출됩니다. (여러 가지 이유로 이것을해야합니다.)Python 문제 - 'reverse function call'
나는 기능면에서 특정 조건 하에서 나머지 코드는 건너 뛰고 다음 반복을 진행하는 데 매우 유용 할 것이다. .
기능을 종료 기능 '계속', 또는 '역 함수 호출'의 종류의 동등한이 있는지 궁금 해서요 .. 당신은 무엇을 설명하고하는 것은 "재귀"라고
while 또는 for를 사용하는 대신 루프가 계속 호출되어 계속 호출됩니다. (여러 가지 이유로 이것을해야합니다.)Python 문제 - 'reverse function call'
나는 기능면에서 특정 조건 하에서 나머지 코드는 건너 뛰고 다음 반복을 진행하는 데 매우 유용 할 것이다. .
기능을 종료 기능 '계속', 또는 '역 함수 호출'의 종류의 동등한이 있는지 궁금 해서요 .. 당신은 무엇을 설명하고하는 것은 "재귀"라고
당신에게 재귀 호출이 수행되는 조건을 처리하여 "반복을 건너 뛸 수"있습니다.
예를 들어, 이제 우리가 여기에서 우리는 해결책을 써서 방법은, 1에서 10까지의 모든 숫자를 추가 할 수 있지만 루프와 숫자 5를 건너 뛰는해야한다고 가정 해 봅시다, 결과는 counter
변수에 끝 :
counter = 0
for n in range(1, 11):
if n == 5:
continue
counter += n
은, 위의 코드는 다음에 해당합니다 :
def adder(n):
if n > 10: # base case of recursion
return 0
if n == 5: # recursive call to skip
return adder(n+1)
else: # normal recursive call
return n + adder(n+1)
우리는 다음과 같이 호출하면, 우리는 예상 된 결과 얻을 :
adder(1)
=> 50
예를 들어, 현재 반복을 건너 뛰고 다음 반복으로 건너 뛰기 때문에 if n == 5
은 함수에 대해 continue
의 역할을합니다. 방법? 단순히 이 아니라은 재귀 호출에서 아무 것도하지 않고 그냥 다음 값으로 이동합니다. 이것을 "정상적인"재귀 호출과 비교하면 호출 결과에 n
이 추가됩니다.
(의견에 제안 된대로) 단순히 함수에서 돌아 오는 것은 이 아니며이 아니며 반복을 건너 뛸 때와 마찬가지로 "루프에서 깨기"와 유사합니다. "계속 반복"하려면 위와 같이 재귀를 다시 호출해야합니다.
에 표시된 것처럼 재귀를 다시 호출해야합니다. 나는 그 함수가 반복적으로 자신을 호출하는 것이 아니라 일종의 디스패처에 의해 반복적으로 호출된다고 가정하고 있다고 생각합니다. 문제는 무엇이 일어나고 있는지 명확하지 않습니다. – user2357112
예제 코드를 보여줘야합니다. 함수가 반복적으로 자신을 호출하고 있다는 것을 의미합니까? 너는 그걸 영원히 할 수 없다. –
'역 함수 호출'은'return'이됩니다 – sapi
'무엇이든 : return' –