如何让此代码生效?我无法将其puts "+"
或puts "]"
:
puts " Enter an option:"
puts "------------------"
puts "1] Learn to FOIL"
puts "2] Learn to factor"
puts "3] Practice!!!!!!!"
input = gets.chomp.gsub[" ", ""]
if input == 1 then
puts "The FOIL method is used to put together the simplified terms of a polynomial."
puts "To FOIL, you take the first term of the first set and multiply it by the first"
puts "and second terms of the second set. Example:"
puts " _______"
puts " / \ \"
puts "[5x+2][10x+4]"
puts " equals [50x²+20x]"
puts " "
puts " WAIT......"
http://www.youtube.com/watch?v=dQw4w9WgXcQ
else
puts "NOT READY!!!!!!!"
end
答案 0 :(得分:3)
您需要一个带语法高亮显示的编辑器,因此您可以告诉您的字符串未被关闭:
puts " / \ \"
您的最终"
被\
转义,意味着该字符串未被关闭。你需要使用另一个反斜杠来逃避反斜杠:
puts " / \ \\"
答案 1 :(得分:2)
你需要逃避反斜杠。将第13行更改为
puts " / \\ \\"
我认为这可以回答您的问题,但由于第18行的youtube网址仍然存在语法错误。
答案 2 :(得分:2)
更简单地使用单引号:'
而非"
过滤输入。
答案 3 :(得分:1)
您已在"
中转义了" / \ \"
个字符。反斜杠将打印后续字符作为字符串的文字部分而不是字符串分隔符。要使用反斜杠作为文字字符,您必须使用另一个反斜杠来转义它。您可以通过使用%q( / \ \ )
等字符串文字分隔符来规避所有这些。
答案 4 :(得分:0)
这永远不会奏效:
input = gets.chomp.gsub[" ", ""]
if input == 1 then
gets
返回一个字符串:“gets”表示“获取字符串”。这就是chomp
和gsub
工作的原因,因为它们是String的方法。
您无法将"1"
与1
进行比较。第一个是String值,第二个是Fixnum。试图这样做会激怒Ruby,它会响应false
因为它们不是同一类型的值。
你可以说:
input = gets.chomp.gsub[" ", ""].to_i
或:
if input.to_i == 1 then
或:
if input == '1' then
和
http://www.youtube.com/watch?v=dQw4w9WgXcQ
会生成语法错误,因为它不是方法或变量。
也许您希望用户打开浏览器到该URL,或者为用户打开浏览器并将其指向该URL?无论哪种方式,http://www.youtube.com/watch?v=dQw4w9WgXcQ
都不会为你做。