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

#java #loops #for-loop

#java #циклы #цикл for

Вопрос:

Я пытаюсь создать программу, которая проверяет, является ли слово палиндромом или нет, и моя проблема в том, что в моем цикле for переменная j, похоже, не становится выше нуля, даже несмотря на то, что я увеличиваю ее (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;

    }

}
  

Комментарии:

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

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

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

Ответ №1:

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

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

Комментарии:

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

Ответ №2:

Попробуйте это

 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;

    }

}