-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