第7章,本章末尾的第一个练习(电子书) --> https://pine.fm/LearnToProgram/chap_07.html
我能够获得代码,但只有一次我设置了一个变量,并将其设置为某个值。我真的不明白为什么,我希望你能解释一下为什么你必须这样做。
下面是我的代码:
puts "Tell me some of your favorite words-- one at a time, please!"
fave_words = []
word = '0'
while word != ''
word = gets.chomp
fave_words.push word
end
puts "Here are a few of your favorite words..."
puts fave_words.join(' ')
puts "Now in alphabetical order..."
puts fave_words.sort提前感谢!
发布于 2016-02-28 07:57:51
循环工作的条件(主要是第一次进入循环)是具有不同于空字符串的值的单词。所以不管你把它设为word = '0'还是word ='any other string'都没关系。只要您将其设置为不同于''的值,loop子句的计算结果就会为true,然后循环就会开始。只要您为它提供了一个非空的输入,它就会保持在循环中,因为子句的计算结果仍然是true。
实际上,您甚至不需要在循环外部声明变量。你可以这样做:
while true
word = gets.chomp
break if word.empty?
fave_words.push word
end所以循环立即开始,因为eval(true)是真的。循环将继续,直到您的输入是空字符串,在此条件下,我们中断循环。
发布于 2016-02-28 03:29:12
word始终是来自用户的输入,只要它是非空字符串,while循环就会起作用。为了让球滚动起来,在循环外部定义了word,并将其设置为非空字符串,从而执行循环。
当用户仅通过按enter键不输入任何内容时,while循环条件失败,循环停止。
https://stackoverflow.com/questions/35674315
复制相似问题