2014-11-17 37 views
-1

我試圖讓遍歷if語句,如果用戶輸入無效它都跟只輸入數字或斷裂,如果真的紅寶石使用,如果內環路與用戶輸入

我想這是我的代碼

class String 
    def numeric? 
    Float(self) != nil rescue false 
    end 
end 
cond = false 

puts "Enter number " 
line = gets.chomp.strip 

while cond == false 
    if (line.numeric? ) 
     puts "Ok nice " 
     cond = true 
     else 
     puts "Please enter number only " 

    end 
end 

但它一直循環,如果條件是假的只是印刷「請輸入號碼只有」

我會爲任何建議非常高興

謝謝

+1

你不要求另一條線路。 –

回答

1

的問題是,告訴用戶只需要輸入一個號碼後,你不讀另一個號碼,您只需循環回到我的身邊。

解決這個問題的最簡單方法是在提示,輸入移動到while環,有點像這樣:

class String 
    def numeric? 
    Float(self) != nil rescue false 
    end 
end 
cond = false 

while cond == false 
    puts "Enter number " 
    line = gets.chomp.strip 

    if (line.numeric? ) 
     puts "Ok nice " 
     cond = true 
    else 
     puts "Please enter number only " 
    end 
end 
0

試試這個:

while cond == false 
    if (line.numeric? ) 
     puts "Ok nice " 
     cond = true 
    else 
     puts "Please enter number only " 
     line = gets.chomp.strip 
    end  
end 
0

右覆蓋字符串方法後,試試這個:

while true                                                    
    print "Enter number "                                               
    line = gets.chomp.strip 

    if line.numeric? 
    puts "Ok nice" 
    break 
    else 
    puts "Please enter number only" 
    end                                               
end