#java
Вопрос:
String word = "elephant";
String revWord = "";
for (int i = 0; i < word.length(); i ) {
revWord = word.charAt(i) revWord;
}
System.out.println("Word: " word " in reverse is " revWord);
Я знаю, как для петель word и charAt и инкрементации
Я просто не понимаю, как это меняет дело
Это и есть результат:
Word: elephant in reverse is tnahpele
Комментарии:
1. Чего бы вы ожидали от него, если бы это было
revWord = revWord word.charAt(i);
так ?
Ответ №1:
Лучший способ понять ваш код-это взять лист бумаги и проработать каждую итерацию цикла, пока он не «щелкнет» у вас в голове. Давайте введем трехсимвольную строку ABC
, чтобы посмотреть, что произойдет:
after first iteration:
revWord = A "" = A
after second iteration:
revWord = B A = BA
after third iteration:
revWord = C BA = CBA
По сути, на каждом шаге цикла он помечает следующую букву в начале текущей обратной строки. Как вы можете видеть выше, это приводит к изменению порядка символов во входном слове.
Ответ №2:
это из-за этой строки: revWord = word.charAt(i) revWord;
каждый раз, когда ваш цикл завершается, выберите символ и поместите его в начало нового слова. это позволяет каждый раз делать шаг вперед и ближе к концу строки символы помещать их в первую строку revWord