Ruby编校程序逻辑?

时间:2013-08-24 23:44:34

标签: ruby each control-flow redaction

好, 我正在做codeacademy ruby​​轨道,我没有解决问题。 我现在可以使它工作,但我不明白为什么它的工作原理。 运动说明:

  

让我们开始简单:编写一个.each循环,通过单词并打印出它找到的每个单词。

我已将问题分解为试图理解其工作原理的步骤 但我很困惑。 我的问题代码是:

puts "Text to search through: " #ask user for input
text = gets.chomp
#store the user's input into the variable text
puts "Text to be reducted: " 
#ask the user for input
redact = gets.chomp 
#store the user's input into the variable redact

words = text.split(" ") 
=begin
split the user's input into the variable words
store that input into the variable words
=end
words.each do |word| 
=begin
creates a placeholder for the user's input
then attach an expression to the input stored in
the variable words one at a time. The variable
words holds the value of the variable text
=end
    if word != redact 
=begin
if word (which now holds the value of words that's
stored in the variable text, and which is the user's input)
is not equal to the value of the variable redact do something
=end
        word = word + " "
=begin
increment the value of word by an empty space
why do I need to increment the value of word by an empty space? 
=end
        print "#{word}" #print the value of the variable word
else
    print "REDACTED" #otherwise, print the value redacted
end
end

如果我使用以空格分隔的字符串并且仅在我更改

时,程序才有效
word = word + ""

而不是

word = word + " "

如果有人一步一步地为我分解,我真的很感激。

我创建了一个视频,以便更直观地解释它。 这是链接:ruby redaction video

谢谢。

2 个答案:

答案 0 :(得分:0)

您视频中的问题是“nelson”与“nelson”不同,而且当您在打印前为该词添加空格时,Codeacademy得分不会看到匹配。

答案 1 :(得分:0)

我正在2019年7月阅读此问题。

因此,任何正在阅读此问题并与用户要求的以下部分混淆的人:

单词=单词+“” =开始 将单词的值增加一个空格 为什么我需要将word的值增加一个空格?

因此,答案是+号不是用于增加值,而是用于添加空格,并且+号用作字符串连接器。因此,它已放置在此处,以便无论搜索和显示任何单词,它们之间都有一个空格。