2014-10-19 2 views
0

Я хочу вернуть строку «electric» с номером ввода пользователем. Я создал программу. Проблема в том, что он возвращается с 0, а не только для вывода. Я знаю, в чем проблема, я просто не знаю правильного решения.Java - рекурсия со строкой, возвращающаяся с 0

Пример:

Входной сигнал: 3

Выход:

Electric
Electric
Electric
- не должны иметь ноль здесь.

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

Каким должен быть выход? ? Оператор if возвращает число, если указанное число <= 0 так логически, все, что оно выведет, равно 0 или число меньше нуля – DreadHeadedDeveloper

+0

Электрическое Электрическое Электрическое без нуля, когда я использую этот код, оно имеет 0 под Это. –

+0

Почему бы не избавиться от оператора if и сделать этот метод недействительным? – DreadHeadedDeveloper

ответ

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

Y наш метод всегда будет возвращать 0, поэтому вместо печати x (s) просто вызовите x (s), а затем напечатайте s (не уверен, хотите ли вы на самом деле напечатать это в конце)

Смежные вопросы