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 回答