行为不端的案件陈述

And*_*ndy 1 ruby syntax

我在Ruby中搞砸了一些.我有一个包含两个方法的类的文件和以下代码:

if __FILE__ == $0

  seq = NumericSequence.new

  puts "\n1. Fibonacci Sequence"
  puts "\n2. Pascal\'s Triangle"
  puts "\nEnter your selection: "
  choice = gets
  puts "\nExcellent choice."

  choice = case
  when 1
    puts "\n\nHow many fibonacci numbers would you like? "
    limit = gets.to_i
    seq.fibo(limit) { |x| puts "Fibonacci number: #{x}\n" }
  when 2
    puts "\n\nHow many rows of Pascal's Triangle would you like?"
    n = gets.to_i
    (0..n).each {|num| seq.pascal_triangle_row(num) \
       {|row| puts "#{row} "}; puts "\n"}
  end

end
Run Code Online (Sandbox Code Playgroud)

为什么我运行代码并提供选项2,它仍然运行第一个案例?

Mla*_*vić 5

你的case语法错了.应该是这样的:

case choice
  when '1'
    some code
  when '2'
    some other code
end
Run Code Online (Sandbox Code Playgroud)

看看这里.

您还需要将变量与字符串进行比较,作为gets读取并将用户输入作为字符串返回.