递归作业

时间:2012-09-23 17:16:20

标签: java recursion

我有一个功课问题我可能会过度思考,我需要使用递归来反转Hello.,以便最终结果没有.

我目前的方法是:

public void foo(){
    Scanner scan = new Scanner(system.in);
    char c = scan.nextChar();
    if (c!='.')
        foo();
    System.out.print(c);
}

这似乎输出相反,但它仍然有.。有人能指出我正确的方向摆脱这段时期吗?

3 个答案:

答案 0 :(得分:11)

将打印件放在大括号内:

if (c!='.') {
   foo();
   System.out.print(c);
}

答案 1 :(得分:8)

使用'.'代替".",因为您要比较的是char,而不是String

public void foo(){
  Scanner scan = new Scanner(system.in);
  char c = scan.nextChar();
  if (c != '.') {
    foo();
    System.out.print(c);
  }
}

另请注意,如果是String,则需要使用equals进行比较。 ==!=用于比较基本类型,例如char

答案 2 :(得分:1)

由于charsingle quoteseg : 'A'

if (c!='.')
  foo();
System.out.print(c);
}