首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习编程(Chris Pine)答案说明

学习编程(Chris Pine)答案说明
EN

Stack Overflow用户
提问于 2016-02-28 03:21:54
回答 2查看 272关注 0票数 1

第7章,本章末尾的第一个练习(电子书) --> https://pine.fm/LearnToProgram/chap_07.html

我能够获得代码,但只有一次我设置了一个变量,并将其设置为某个值。我真的不明白为什么,我希望你能解释一下为什么你必须这样做。

下面是我的代码:

代码语言:javascript
复制
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

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-02-28 07:57:51

循环工作的条件(主要是第一次进入循环)是具有不同于空字符串的值的单词。所以不管你把它设为word = '0'还是word ='any other string'都没关系。只要您将其设置为不同于''的值,loop子句的计算结果就会为true,然后循环就会开始。只要您为它提供了一个非空的输入,它就会保持在循环中,因为子句的计算结果仍然是true

实际上,您甚至不需要在循环外部声明变量。你可以这样做:

代码语言:javascript
复制
while true
   word = gets.chomp
   break if word.empty?
   fave_words.push word
end

所以循环立即开始,因为eval(true)是真的。循环将继续,直到您的输入是空字符串,在此条件下,我们中断循环。

票数 1
EN

Stack Overflow用户

发布于 2016-02-28 03:29:12

word始终是来自用户的输入,只要它是非空字符串,while循环就会起作用。为了让球滚动起来,在循环外部定义了word,并将其设置为非空字符串,从而执行循环。

当用户仅通过按enter键不输入任何内容时,while循环条件失败,循环停止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35674315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档