2016-07-06 4 views
1

누가 재귀 논리를 도와 줄 수 있습니까? while 루프를 사용하여 iterating하는 iterator 객체가 있습니다. 그런 다음 각 반복 된 객체에서 다시 반복해야합니다.반복 논리를 반복하는 반복 논리

private void handleRecursiveMethod(someMethod) { 
        Iterator<Sometype> methods=doingSomething(someMethod)); 
        while(methods.hasNext()){ 
         printingDetailsAboutThisMethod(methods.next()) 
         // Again with each method I have to do same 
         // operation until methods.hasNext becomes false. 
         handleRecursiveMethod(methods.next()); 
         // By calling this, it does not complete while 
         // loop first time. 
        } 
} 
+0

아무 것도 할 수 없으면 매개 변수'someMethod'가 필요합니다. –

+0

일부 유형이 있다고 가정합니다. 나는 재귀 논리에 대해 물어보고 싶었다. – marion

+0

이것은 재귀 논리가 아닙니다. 이것은 반복 논리입니다. 네가 묻는대로 혼란스러워. –

답변

1

반복기가 더 이상 반복 할 항목이 없을 때까지 함수가 while 루프로 들어갑니다. 그래서 당신이 handleRecursiveMethod(methods.next()); 메서드의 끝 부분에 전화했을 때, 그것은 NoSuchElementException을 던져야한다고 생각합니다.

예제에서 깊이 우선 탐색을 시도하는 것으로 보입니다. 따라서 코드는 다음과 같아야합니다.

private void handleRecursiveMethod(Sometype someMethod) { 
    Iterator<Sometype> methods=doingSomething(someMethod)); 
    while(methods.hasNext()){ 
      Sometype method = methods.next() 
      printingDetailsAboutThisMethod(method) 
      handleRecursiveMethod(method); 
    } 
} 
+0

당신의 대답은 다소 유용하지만 코드는 올바르게 고쳐 졌음에도 불구하고 +1. 홀수 개의 값이 반복되는 경우에만'NoSuchElementException'을 던집니다. 물론, 홀수 요소는'printDetailsAboutThisMethod'에 주어지며'handleRecursiveMethod'에 대한 재귀 호출에서 짝수 요소 만 사용되므로 코드 수정이 정확하지만 설명은 약간 벗어납니다. – Andreas

+0

이것은 매우 도움이됩니다. 그러나 이것은 내가 시도한 것입니다.이 경우 첫 번째 반복에서 조건이 true이면이 논리는 연관된 다른 반복자 객체를 찾지 않습니다. 나는이 논리가 객체가 다른 객체를 가지고 있고 다시 트래버스하지만 많은 객체를 가진 객체가 각각의 객체를 통과 할 때 작동하지 않는다고 생각한다. – marion

+0

관련된 다른 개체가 의미하는 바를 설명 할 수 있습니까? 반복자의 역할은 컬렉션 내의 모든 객체를 반복하는 것입니다. 이 경우 while 루프에서 someMethod 컬렉션의 모든 요소가 순회되고 각각에 대해 순환 함수가 호출됩니다. 따라서 트리의 모든 요소를 ​​포함해야합니다. 질문에 대해 더 자세히 설명해 주시겠습니까? –