我不明白为什么我的If else语句无法正常工作,如果我输入'y',那么它会评估if else语句的最后部分。Ruby如果其他语法评估
puts('give 1: ')
nr1= Integer(gets)
puts('give 2: ')
nr2= Integer(gets)
selection = gets.to_s
if (selection == "y".upcase)
puts "Result is #{nr1+nr2}"
elsif (selection =="v".upcase)
puts "Result is #{nr1-nr2}"
else (selection == "k".upcase)
puts "Result is #{nr1*nr2}"
end
'else(selection ==“k”.upcase)'将被视为普通的'else'。可能你想'elsif'到位。 –
我曾尝试切换它,但它没有任何效果,如果输入'y','v'或'k',它不打印结果。 –
你想'如果selection.chomp.downcase ==“y”'(或'如果selection.chomp.upcase ==“Y”')。 'gets.to_s'与'gets'相同。 'gets'总是返回一个以换行符结尾的字符串('“\ n”')。你需要'gets.chomp'去除那个换行符。 –