我试图遍历字符串的每个字母以打印出一个单词.
greeting = "hello"
extract = 0
letter = greeting[extract]
while extract < greeting.length
p letter
extract += 1
end
Run Code Online (Sandbox Code Playgroud)
结果是"h", "h", "h" ,"h", "h"而不是你好.我究竟做错了什么?
你在循环内打印一个已经初始化的变量,它的值从未改变过,这就是为什么总是打印"h".
如果你在循环中打印它会有所不同,因为"counter"(extract)会增加:
greeting = "hello"
extract = 0
while extract < greeting.length
p greeting[extract]
extract += 1
end
Run Code Online (Sandbox Code Playgroud)
如果您想采取另一步并使用内置的Ruby函数,您可以使用each_char:
greeting = 'hello'
greeting.each_char(&method(:p))
# same output
Run Code Online (Sandbox Code Playgroud)