2014-10-19 25 views
0

我想用用户输入的数字返回字符串“electric”。 我已经创建了该程序。问题是它返回0而不是只显示输出。 我知道问题是什么,我只是不知道正确的解决方案。Java - 用0返回字符串的递归

实施例:

输入:3

输出:

电气
电动
电气
- 不应具有零这里。

import java.io.*; 

public class quitx{ 
    public static BufferedReader v = new BufferedReader(new InputStreamReader(System.in)); 
    public static int s; 
    public static void main(String[] args) throws Exception{ 
     System.out.println("Enter an integer : "); 
     s = Integer.parseInt(v.readLine()); 

      System.out.println(x(s)); 



    } 

    public static int x(int s){ 
     if(s <= 0) 
      return s; 
     else{ 
      System.out.println("Electric!"); 
      return x (s - 1); 
     } 

    } 
} 
+0

应该输出什么内容? ?如果所述数字<= 0,则您的if语句返回数字,因此从逻辑上讲,所有数字都会显示为0或小于零的数字 – DreadHeadedDeveloper 2014-10-19 14:21:32

+0

Electric Electric Electric 不带零,当我使用此代码时,它具有0下它。 – 2014-10-19 14:22:43

+0

为什么不摆脱if语句并使该方法失效? – DreadHeadedDeveloper 2014-10-19 14:24:15

回答

2

x()方法返回int。您不希望打印此int。然而,你打电话

System.out.println(x(s)); 

如果你不想要的结果要打印,然后...不打印:

x(s); 
0

删除方法的返回类型:

public static void x(int s){ 
    if (s > 0) { 
     System.out.println("Electric!"); 
     x(s - 1); 
    } 
} 

并更改呼叫

x(s); 
1

ÿ我们的方法总是返回0,所以不要打印x(s),只需调用x(s)然后打印s(不确定是否真的想在最后打印)