숙제가 주어지면 답을 바로 알려주지는 않겠습니다.
메서드가 자체를 호출하는 메커니즘 인 경우 재귀. 분명히 메소드가 이것을 무의식적으로 수행한다면 결국에는 stackoverflow 예외를 얻게 될 것이므로 메소드가 자신을 호출하는 것을 멈추는 일종의 종료 조건이 필요하다. 당신이 파일을 발생할 때 경우
는 종료 조건은, 그래서 당신은이 같은 뭔가 코드해야합니다 :
이 같은 프로그램이 실행
int size(file)
{
if file represents a directory
{
loop over contents of the directory calling size method with each item and sum the return values
return the sum
}
else file represents a file
{
return file size
}
}
, 각 호출 스택에 추가됩니다 다음과 같은 파일 구조를 가지고있는 경우에 이렇게 :
+ root
+ directory 1
+ file 1
+ file 2
+ file 3
이 패턴을 따를 것입니다 귀하의 스택 :
size(file1) size(file2)
-> size(directory) -> size(directory) -> size(directory) -> size(directory) -> size(directory) -> -> size(file3) ->
size(root) size(root) size(root) size(root) size(root) size(root) size(root) size(root) size(root)
일반적인 접근법을 보여 주면 Java로 변환 할 수 있도록 남겨 두겠습니다.
지금까지 시도한 것을 보여주십시오. 그것이 작동하지 않는다면 그것은 괜찮습니다. 그것이 바로 SO입니다. 사람들이 누락 된 부분을보다 잘보고 올바른 방향으로 안내 할 수 있도록 도와줍니다. – FatalError
@FatalError 숙제 문제 –
freelancer.com이며 집안 일에 돈을 지불하십시오. – Makky