2016-03-08 164 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到整数。您发布的检查器需要一个字符串作为输入。

相关问题