elsif声明不适用于Ruby?

时间:2012-09-10 18:54:03

标签: ruby

我是学习红宝石的新手,我想知道为什么当我输入150时它不会说你的完美。这是我正在编写的代码。

 def prompt     
   print ">> " 
 end  

 puts "welcome to the weight-calc 3000! Enter you weight below!"  

 prompt; weight = Integer(gets.chomp())  

 if weight > 100 && weight < 300     
   puts "your healthy!" 
 elsif weight > 300     
   puts "your fat" 
 elsif weight < 100  
   puts "your skinny"  
 elsif weight == 150     
   puts "your perfect" 
 end  

2 个答案:

答案 0 :(得分:7)

if weight > 100 && weight < 300的条件true150,因此甚至未输入最后一个elsif

您应该在通用条件(weight == 150)之前添加更具体的条件(weight > 100 && weight < 300)。

答案 1 :(得分:2)

看看你的第一个条件:

if weight > 100 && weight < 300

weight150时,它为> 100< 300,因此第一个条件为真。

if weight == 150移至链的顶部。