else
    {
        r=Power(s,n-1);
        System.out.println(r);
        int d=r.length;
        char ch=s.charAt(n);
        int v=d+1;
        p[v]=Character.toString(ch);
        String q = p[v];

        for(i=d+2,j=0;i<2d+3,j<d;i++,j++)
        {
            p[i]=r[j].concat(q);
        }
}

Отображается синтаксическая ошибка, и var j не распознается даже после объявления ... пожалуйста, помогите мне.

8
Priyanka 27 Окт 2012 в 16:16
Если отображается синтаксическая ошибка, ваша программа вообще не может работать. Сначала вам нужно исправить синтаксическую ошибку.
 – 
Esailija
27 Окт 2012 в 16:18
3
Я не вижу объявления j; Просто поместите int j; перед циклом for
 – 
Eduardo
27 Окт 2012 в 16:18
1
Кстати, i, похоже, тоже не был объявлен. вам может потребоваться изменить i=d+2 на int i=d+2
 – 
Eduardo
27 Окт 2012 в 16:22

1 ответ

Лучший ответ

Проблема в состоянии петли. Правильно должно быть:

for(i=d+2,j=0;i<2d+3 && j<d;i++,j++){ ...

Или

for(i=d+2,j=0;i<2d+3 || j<d;i++,j++){ ...

Нет смысла ставить запятую, разделяющую два логических условия в java.

Как видно из комментариев, переменные j и i не объявляются.

22
Renato Lochetti 27 Окт 2012 в 16:31
1
Хороший улов! Я не могу вспомнить, была ли Java похожа на C в отношении оператора запятой, где cond1, cond2 дала бы тот же результат, что и запись cond2 (при условии, что cond1, конечно, не имеет побочных эффектов, таких как в этом случае).
 – 
Eduardo
27 Окт 2012 в 16:28