2012-09-10 30 views
1

我是新來學習紅寶石,我想知道爲什麼當我輸入150它不說你的完美。這是我正在處理的代碼。elsif語句不能在Ruby中工作?

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 
+1

如果語句是排他性的。只有第一個分支發現誰的狀況爲真纔會執行。否則,如果不同,那麼也如果。 Robby如果內置也沒有任何形式,但可以添加它。 – Linuxios

回答

2

看看你的第一個條件:

if weight > 100 && weight < 300 

weight150,它是> 100< 300,所以第一個條件是真實的。

if weight == 150移動到鏈條的頂端。

7

條件if weight > 100 && weight < 300true爲值150,所以最後的elsif甚至沒有輸入。

您應該在通用條件(weight > 100 && weight < 300)之前放置更具體的條件(weight == 150)。

+0

謝謝,它現在有效。 –