2015-04-29 3 views
-2

Я пытаюсь использовать рекурсивный метод в Java для назначения в моем классе. Нам было дано то, что нужно возвращать для каждого условия, и что использовать для тестирования метода.Рекурсивный метод в Java, Invalid AssignmentOperator

Однако он продолжает говорить мне, что (r-1) и (p-1) в операторе if/else в методе имеют недопустимый AssignmentOperator.

Я попытался изменить типы возвращаемых по методу, возился со структурой заявлений, и так далее ..

Вот мой код:

public static void main(String[] args) { 

     recursiveAlgorithm(0, 0); 
     recursiveAlgorithm(0, 1); 
     recursiveAlgorithm(1, 1); 
     recursiveAlgorithm(1, 2); 
     recursiveAlgorithm(1, 3); 
     recursiveAlgorithm(2, 2); 
     recursiveAlgorithm(3, 2); 


} 

    public static int recursiveAlgorithm(int r, int p) { 

     if (r == 0) { 
      return p + 1; 
     } 

     if (p == 0){ 
      return recursiveAlgorithm(r – 1, 1); 
     } 

     else { 
      return recursiveAlgorithm(r – 1, recursiveAlgorithm(r, p – 1)); 
     } 

    } 

Я понятия не имею, что Я ошибаюсь, я уверен, что это имеет какое-то отношение к моему синтаксису, но я понятия не имею, что еще попробовать. Любая помощь будет очень, очень высоко оценена.

Ошибка:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Syntax error on token "Invalid Character", invalid AssignmentOperator 
Syntax error on token "Invalid Character", invalid AssignmentOperator 
Syntax error on token "Invalid Character", invalid AssignmentOperator 

at javaproject.Java_Recursion.recursiveAlgorithm(Java_Recursion.java:25) 
at morris_brittany.Java_Recursion.main(Java_Recursion.java:7) 
+0

Вы можете показать свою фактическую трассировку стека ошибок? – RaGe

+1

Какая строка является ошибкой и что такое метод 'csc2650Algorithm'? – Forseth11

+0

Извините, я забыл изменить имя в методе, когда я разместил его. Единственный метод - это рекурсивный алгоритм. – crackedact0r

ответ

0

ли это:

public static void main(String[] args) { 

    recursiveAlgorithm(0, 0); 
    recursiveAlgorithm(0, 1); 
    recursiveAlgorithm(1, 1); 
    recursiveAlgorithm(1, 2); 
    recursiveAlgorithm(1, 3); 
    recursiveAlgorithm(2, 2); 
    recursiveAlgorithm(3, 2); 

}

public static int recursiveAlgorithm(int r, int p) { 

    if (r == 0) { 
     return p + 1; 
    } 

    if (p == 0){ 
     return recursiveAlgorithm(r - 1, 1); 
    } 

    else { 
     return recursiveAlgorithm(r - 1, recursiveAlgorithm(r, p - 1)); 
    } 

} 

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

0

Вам нужен символ '-', а не символ '-'. Так или иначе, ваш код содержит минус unicode (три из них, на самом деле ... скорее всего, ошибка копирования-вставки). См. https://en.wikipedia.org/wiki/Hyphen-minus.

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