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()));

返信ありがとうございます

4

1 に答える 1

0

if 条件については、if (str == null) である必要があると思います (s.next() == null) と言うと、次の要素を見ていて、if 条件が失敗したときに、さらに別の次の要素への再帰。したがって、要素をスキップしています。

于 2013-03-11T20:58:38.993 に答える