如何提示用户输入,直到输入在Julia中有效



我正在尝试制作一个程序来提示用户输入,直到他们输入特定范围内的数字。

当我输入指定范围之外的字母、符号或数字时,确保代码不会出错的最佳方法是什么?

parse的替代方案中,您可以使用tryparse:

tryparse(type, str; base)

类似于parse,但返回请求类型的值,或如果字符串不包含有效数字,则为nothing

parse相比的优势在于,您可以在不使用try/catch的情况下进行更干净的错误处理,这将隐藏块中引发的所有异常。

例如,你可以做:

while true
print("Please enter a whole number between 1 and 5: ")
input = readline(stdin)
value = tryparse(Int, input)
if value !== nothing && 1 <= value <= 5
println("You entered $(input)")
break
else
@warn "Enter a whole number between 1 and 5"
end
end

样品运行:

Please enter a whole number between 1 and 5: 42
┌ Warning: Enter a whole number between 1 and 5
└ @ Main myscript.jl:9
Please enter a whole number between 1 and 5: abcde
┌ Warning: Enter a whole number between 1 and 5
└ @ Main myscript.jl:9
Please enter a whole number between 1 and 5: 3
You entered 3

这是实现这类功能的一种可能方法:


while true
print("Please enter a whole number between 1 and 5: ")
input = readline(stdin)
try
if parse(Int, input) <= 5 || parse(Int, input) >= 1
print("You entered $(input)")
break
end
catch
@warn "Enter a whole number between 1 and 5"
end
end

样品运行:

Please enter a whole number between 1 and 5: 2
You entered 2

请参阅此链接,了解如何将用户输入解析为int.

最新更新