-1
这似乎是验证数据输入的一种很差的方式。我发现自己做了很多事情。程序可以组合或简化吗?验证数据输入
子的Main() ...
Console.Write("Landscape Size: ")
IsNumeric(LandscapeSize)
Console.Write("Initial number of warrens: ")
IsNumeric(InitialWarrenCount)
Validate(InitialWarrenCount, LandscapeSize)
Console.Write("Initial number of foxes: ")
IsNumeric(InitialFoxCount)
Validate(InitialFoxCount, LandscapeSize)
这里是两个潜艇这似乎过于复杂:
Sub IsNumeric(ByRef Variable As Integer)
While True
Try
Variable = CInt(Console.ReadLine())
Exit While
Catch
Console.WriteLine("Error: Please enter a number:")
End Try
End While
End Sub
Sub Validate(ByVal Variable As Integer, ByVal LandscapeSize As Integer)
Dim Size As Integer
Size = (LandscapeSize * LandscapeSize)
While Variable <= 0 Or Variable >= Size
Console.WriteLine("Error: Please enter a number:")
While True
Try
Variable = CInt(Console.ReadLine())
Exit While
Catch
Console.WriteLine("Error: Please enter a number:")
End Try
End While
End While
End Sub
非常感谢
我没有看到很多你可以改变的地方......也许你可以结合几行,但它不会帮助你。 –
两条评论:1.不要使用名称IsNumeric ..这是一个保留的系统函数名称。 2.使用try/catch来捕获非数字不是最好的方法。错误处理具有与其相关的大量开销。您最好阅读一个字符串并使用系统函数IsNumeric()进行测试。 –
@Trevor在某种程度上,我对你说的那种感觉很满意。有两次尝试抓住声明似乎非常辛苦。谢谢。编辑 - 所以声明为字符串和使用IsNumeric ..听起来更好... – Rich