3

我有一个作业问题,我可能想多了,我需要Hello.使用递归来反转,以便最终结果没有.

我目前的方法是:

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

这似乎输出了相反的结果,但是它仍然具有.. 有人可以指出我摆脱这段时期的正确方向吗?

4

3 回答 3

11

将打印件放在大括号内:

if (c!='.') {
   foo();
   System.out.print(c);
}
于 2012-09-23T17:17:48.683 回答
8

使用'.'而不是"."因为您正在比较 a char,而不是 a String

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

另请注意,如果它是String,则需要使用equals进行比较。==or!=用于比较原始类型,例如char.

于 2012-09-23T17:19:00.407 回答
1

作为一个char,它必须是single quoteseg : 'A'

if (c!='.')
  foo();
System.out.print(c);
}
于 2012-09-23T17:21:02.663 回答