我正在尝试遍历字符串的每个字母以打印出单词。
greeting = "hello"
extract = 0
letter = greeting[extract]
while extract < greeting.length
p letter
extract += 1
end
结果是"h", "h", "h" ,"h", "h"
而不是问候。我在做什么错了?
答案 0 :(得分:5)
您正在循环内打印一个已初始化且其值从未更改的变量,这就是为什么始终打印“ 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