elsif语句在Ruby中不起作用?

elsif语句在Ruby中不起作用?,ruby,Ruby,我刚开始学习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 < 3

我刚开始学习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  

看看你的第一个条件:

if weight > 100 && weight < 300
当权重为150时,它大于100且小于300,因此第一个条件为真


如果重量=150,则移动到链条顶部。

查看您的第一个条件:

if weight > 100 && weight < 300
当权重为150时,它大于100且小于300,因此第一个条件为真

将if weight==150移动到链的顶部。

如果weight>100&&weight<300的条件对于值150为真,那么最后一个elsif甚至没有输入

您应该在“通用条件权重>100&&weight<300”之前输入更具体的条件weight==150。

如果权重>100&&weight<300,则该条件对于值150为真,因此最后一个elsif甚至没有输入


如果语句是排他性的,则应在通用条件权重>100和权重<300之前放置更具体的条件权重==150。

。只有发现条件为true的第一个分支被执行。Else if是不同的,那么if也是不同的。Robby没有任何类型的if内置,但可以添加。if语句是独占的。只有发现条件为true的第一个分支被执行。Else if是不同的,那么if也是不同的。Robby没有任何内置的,但可以添加。