2015-07-19 14 views
1

我真的不知道如何將這個簡短的詞彙發佈到Google上。是否有可能在多條件while循環中不同地執行條件而不創建一個新的while循環?

但有可能在多條件while不同執行一定的條件,而無需創建一個整個整個while循環。


例如,是否有可能做這樣的事情

while num == "" || num == "0" 
    #ENTER CODE 


而不是做這個

while num == "" 
    print "YOU MUST ENTER A NUMBER!" 
    num = gets.chomp 
end 

while num == "0" 
    print "ZERO IS NOT A VALID NUMBER!" 
    num = gets.chomp 
end 

我想知道的是有可能做到這一點,但要看起來更具視覺吸引力和簡潔。

+0

嘗試'而NUM ==「」 || 「0」' – fylooi

回答

1

這應該做的伎倆,一個循環,並使用條件爲其打印錯誤消息。

while num == "" || num == "0" 
    print "YOU MUST ENTER A NUMBER!" if num == "" 
    print "ZERO IS NOT A VALID NUMBER!" if num == "0" 
    num = gets.chomp 
end 
+0

短而漂亮!這是我正在尋找的。謝謝! – PrimRock

1

你可以寫這樣的:兩個字符串"0"nil

while num.to_i.zero? 
    case number 
    when '' 
    print 'YOU MUST ENTER A NUMBER!' 
    when '0' 
    print 'ZERO IS NOT A VALID NUMBER!' 
    end 

    num = gets.chomp 
end 

這工作,因爲to_i返回0

此外,我會建議更改錯誤信息,以簡化代碼更:

while num.to_i.zero? 
    print 'Please enter a number greater then zero' 
    num = gets.chomp 
end 
+0

我沒有想過用case和when語句。我會加入到我的知識庫中。謝謝! – PrimRock