2013-02-06 2 views
0

그래서 내 코드입니다 :스캐너는 재귀 호출에서 제대로 작동하지

import java.util.Scanner; 


public class partOne { 
private static Scanner s; 
public static void main(String [] args) { 
    s = new Scanner(System.in); 
    System.out.print("type: "); 


    System.out.println(recursionPartOne(s.next())); 


} 
public static String recursionPartOne(String str) { 
    System.out.print(str + " "); 
    if (s.next() == null) { 
     return str; 
    } else 

     return recursionPartOne(s.next()); 

} 
} 

그리고 난 다음 그것을 줄 경우이는 출력 것입니다 :

type: this is a test run 
this a run 

내 주요 목표를 가지고있다 재귀를 사용하여 역순으로 독립 문자열 요소를 출력하지만 지금은 s.next() 호출이 다른 모든 요소를 ​​건너 뛰고 왜 System.out.println(recursionPartOne(s.next()));이 호출되지 않는지 이해할 수 없습니다

모든 응답 주셔서 감사합니다

답변

0

if 조건에 대해, 나는 (str == null)이어야한다고 생각하기 때문에 (s.next() == null)라고 말하면 다음 요소를보고있는 것입니다. if 조건이 실패하면 다음 다른 요소에서 재귀를 수행합니다. 따라서 요소를 건너 뜁니다.

+0

좋은 지적! 팁 :'for code formatsting '을 사용할 수 있습니다. 당신의 대답을 더 잘 읽을 수있게 해줍니다. – Trinimon

관련 문제