Итерация по каждой букве строки - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь перебрать каждую букву строки, чтобы вывести слово.

greeting = "hello"
extract = 0
letter = greeting[extract]

while extract < greeting.length
  p letter
  extract += 1
end

Результат - "h", "h", "h" ,"h", "h" вместо приветствия.Что я делаю не так?

1 Ответ

0 голосов
/ 26 ноября 2018

Вы печатаете внутри цикла переменную, которая была инициализирована и значение которой никогда не менялось, поэтому всегда печатает "h".

Было бы иначе, если вы напечатаете ее внутри циклакак «счетчик» (extract) увеличивается:

greeting = "hello"
extract = 0

while extract < greeting.length
  p greeting[extract]
  extract += 1
end

Если вы хотите сделать еще один шаг и использовать встроенные функции Ruby, вы можете использовать each_char:

greeting = 'hello'
greeting.each_char(&method(:p))
# same output
...