gpt4 book ai didi

ruby - 如何检查用户输入的是不是数字

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:56 25 4
gpt4 key购买 nike

我正在制作这个小程序,我想检查用户是否输入了一个整数,如果他输入了,程序将继续,但如果用户输入一个字符串,我想让程序要求用户输入一个整数,直到他这样做,这是我的代码片段:

print "How old are you:"
user_age = gets.chomp.to_i
if user_age.is_a? String
puts "Please enter an integer number:"
user_age = gets.chomp.to_i
until user_age.is_a? Numeric
puts "Please enter an integer number:"
user_age = gets.chomp.to_i
break if user_age.is_a? Numeric
end
end

最佳答案

我认为你的错误是 gets.chomps 之后的 to_i

to_i 返回字符串开头的第一个数字或 0,因此您总能得到一个数字(0 或另一个数字)。以下是一些示例:

2.2.1 :001 > "12".to_i
=> 12
2.2.1 :002 > "12aaa".to_i
=> 12
2.2.1 :003 > "aaa12aaa".to_i
=> 0
2.2.1 :004 > "aaaaaa".to_i
=> 0

我写了这段代码,对我有用:

print "How old are you:"
begin
user_age = gets.chomp
user_age = Integer(user_age)
rescue ArgumentError
print "Please enter an integer number:"
retry
end
print user_age.to_s

关于ruby - 如何检查用户输入的是不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31410694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com