0

我怎样才能让这个代码工作?我做不到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
4

5 回答 5

3

你需要一个带有语法高亮的编辑器,这样你就可以知道你的字符串没有被关闭:

puts "  /    \  \"

你的 final"被 a 转义了\,这意味着字符串没有被关闭。您需要使用另一个反斜杠来转义反斜杠本身:

puts "  /    \  \\"
于 2013-05-23T17:28:29.063 回答
2

您需要转义反斜杠。将第 13 行更改为

puts "  /    \\  \\"

我认为这回答了你的问题,但由于第 18 行的 youtube URL 仍然存在语法错误。

于 2013-05-23T17:27:19.007 回答
2

更简单的是使用单引号:'而不是"过滤器输入。

于 2013-05-23T17:29:00.767 回答
1

您已经逃脱"" / \ \". 反斜杠会将后续字符打印为字符串的文字部分,而不是字符串分隔符。要将反斜杠用作文字字符,您必须使用另一个反斜杠对其进行转义。您可以通过使用字符串文字分隔符(如%q( / \ \ ).

于 2013-05-23T17:28:27.160 回答
0

这永远不会奏效:

input = gets.chomp.gsub[" ", ""]
if input == 1 then

gets返回一个字符串:“gets”表示“获取字符串”。这就是为什么chompgsub工作,因为它们是字符串的方法。

"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都不会为你做。

于 2013-05-23T20:00:56.950 回答