2015-11-15 5 views
0
public class RecursionPracticeProgram { 
    KeyboardReader reader = new KeyboardReader(); 

public String backString(String s){ 
    s = reader.readLine("String: "); 
    if(s.length()==0) 
     return s; 

    System.out.println(backString(s.substring(1)) + s.charAt(0)); 

    return backString(s.substring(1)) + s.charAt(0); 


} 

public void run(){ 
    backString("Fox"); 
} 

Я делаю рекурсию, но у меня проблемы с ее распечаткой. Я думаю, что у меня есть код, правильный для изменения строки, но когда я иду, чтобы запустить программу, которую он только строит и на самом деле ничего не печатает. Как распечатать его правильно?Как распечатать метод рекурсии?

+0

Почему вы сразу же отбросили параметр, переданный вашему методу? Как вы думаете, 'read.readLine (" String: ")' делает? – azurefrog

+0

Я забыл, что положил туда. Я взял его, но он все еще не работал должным образом. – clopez

ответ

0

Вам необходимо убедиться, что вы читаете только один раз, и вы вызываете свой метод вообще. Просто сделайте это так:

public class RecursionPracticeProgram { 
    public void run() { 
    String input = reader.readLine("String: "); 
    KeyboardReader reader = new KeyboardReader(); 
    System.out.println(reader.backstring(input)); 
    } 

    public String backString(String s){ 
    if(s.length()==0) 
     return s; 
    System.out.println(backString(s.substring(1)) + s.charAt(0)); 
    return backString(s.substring(1)) + s.charAt(0); 
    } 
} 
+0

Я редактировал мой код, чтобы включить его, но он все еще не печатал. Должен ли я положить что-то в свой основной метод? – clopez

+0

@clopez Да, конечно, вам нужно иметь что-то в своем «основном» методе. Здесь начинается выполнение программы. Как это должно идти к методу 'run', если метод' main' не вызывает его? – RealSkeptic

+0

Я обновил свой ответ. Было еще несколько вопросов. – Nitek

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