Я получил это сообщение: левая сторона задания должна быть переменной, когда я закончил, чтобы разрешить упражнение о том, чтобы напечатать строку обратно в рекурсивном цикле. Я просто хочу знать, может ли кто-нибудь объяснить это? Сообщение об ошибке появляется в последней строке ... Я не понимаю, ПОЧЕМУ? Существует мой код:Почему я получаю это сообщение об ошибке при использовании рекурсии?
import java.util.Scanner;
public class Excersise {
public static void main(String[] args) {
// Create a Scanner
Scanner input = new Scanner(System.in);
//Prompt the user to enter a string
System.out.print("Enter a string: ");
String s = input.nextLine();
reverseDisplay(s);
}
public static void reverseDisplay(String value) {
//Base case
if (value.length() < 2) {
System.out.println(value);
} else {
//Recursion
reverseDisplay(value.substring(1)) + value.charAt(0); <--error
}
}
}
reverseDisplay в возвращаемом типе 'void'. Что значит добавить пустоту в символ? – FDinoff
снова просмотрите эту строку ** reverseDisplay (значение.substring (1)) + значение.charAt (0); ** <- ошибка ... вы добавляете пустоту в символ! – Scorpion
Я думаю, что вы должны заменить эту последнюю строку двумя строками - 'reverseDisplay (value.substring (1));' и затем 'System.out.print (value.charAt (0));' и также изменить 'println' на 'print' в ветке' if'. –