Увеличение второй переменной в цикле for java

Я пытаюсь создать программу, которая проверяет, является ли слово палиндромом или нет, и моя проблема в том, что в моем цикле for переменная Дж, похоже, не становится больше нуля, даже если я увеличиваю ее (j++). Вот мой код (кстати, я новичок в кодировании, так что не будьте слишком строги):

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.println("Enter Word");
    String word = scanner.next();
    scanner.close();


    for(int i = word.length(); i>0; i--) {
        int j = 0;

        char modTemp = word.charAt(i-1);
        char wordTemp = word.charAt(j);

        System.out.println("reverse char: "+modTemp);
        System.out.println("Normal char: "+wordTemp);
        System.out.println(j);

        if (modTemp == wordTemp) {
        }

        ++j;

    }

}

Переместите int j = 0; до начала цикла.

Dawood ibn Kareem 05.03.2019 20:14

Спасибо. Это действительно ошибка новичка...

Dunila28 05.03.2019 20:17

Мы все были новичками. Не беспокойтесь об этом.

Dawood ibn Kareem 05.03.2019 20:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны определить int j = 0 перед циклом for. Также ничто не мешает вам определить цикл for с 2 переменными:

for (int i = word.length(), j = 0; i > 0; i--, j++) {
    ...
}

Спасибо, я не знал, что вы можете определить две переменные в цикле for.

Dunila28 05.03.2019 20:41

Попробуй это

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.println("Enter Word");
    String word = scanner.next();
    scanner.close();

    int j = 0;
    for(int i = word.length(); i>0; i--) {    
        char modTemp = word.charAt(i-1);
        char wordTemp = word.charAt(j);

        System.out.println("reverse char: "+modTemp);
        System.out.println("Normal char: "+wordTemp);
        System.out.println(j);

        if (modTemp == wordTemp) {
        }

        ++j;

    }

}

Другие вопросы по теме