2016-03-08 53 views
-2

我想讓我的程序接受0作爲一個數字。經過一番搜索之後,我發現了一個可能工作的公式,但是如何將它實現到我的 程序中?代碼是:如何讓我的計算器程序接受0

def integer?(input) 
    input.to_i.to_s == input 
end  

我想將其添加到此代碼塊。請記住,valid_number?是我創建的一種方法。我要寫另一個if聲明嗎?

loop do 
    prompt("Whats the first number") 
    number1 = Kernel.gets().chomp().to_i 

    if valid_number?(number1) 
    break 
    else 
    prompt("Not a number") 
    end 
end 
+0

請閱讀「[mcve]」。當詢問代碼時,我們需要一個實際演示問題的最小代碼示例。 –

+0

需要注意的是,在使用Ruby時,通常會省略空的參數列表,並且只有在當前作用域中具有相同名稱的其他方法時,才需要爲內核方法指定「Kernel」。也就是說,改爲'gets.chomp.to_i'。 – tadman

+1

@Tadman也不需要'chomp'。 – steenslag

回答

2
loop do 
    puts "Whats the first number" 
    number1 = gets.chomp 

    if number1.to_i.to_s == number1 
    break 
    else 
    puts "Not a number" 
    end 
end 

與您的代碼的問題(假設integer?valid_number?是相同的方法)是你將它傳遞給檢查之前轉換number1到整數。您發佈的檢查器需要一個字符串作爲輸入。

相關問題