嘿,我正在做的每个人都必须验证用户输入数据。当问我的讲师是否可以使用IsNumeric验证两个数字之间的范围时,他只是说“是”,而没有告诉我如何做。 现在,我知道您可以使用if语句进行验证了,而我使用基本的方法可以这样做:
if hours < 0 then
Messagebox("Please enter a value greater than 0" "Input Value to
low" messagebox.buttons retry/cancel) ''something like that
Elseif hours > 23 then
Messagebox( "please enter a value less than 23" "Input Value to
high" messagebox.buttons retry/cancel)
End if
我什至问他是否可以在if语句中使用AND来排列数据。再次是,没有例子
我想到的例子
If hours < 0 AND hours > 23 then
'' continue processing
Else
Messagebox("Please enter a Value between 0 and 23" "Input
value
out of range" messagebox.buttons retry/cancel)
End if
答案 0 :(得分:0)
针对您的示例,您可以尝试以下操作:
N = 6;
A = diag(-2*ones(N,1),0) + diag(ones(N-1,1),1) + diag(ones(N-1,1),-1);
A(1,1:2) = [1,0];
A(end,end-1:end) = [0,1];
答案 1 :(得分:0)
IsNumeric()
很老...现代实践倾向于使用Integer.TryParse()
或Double.TryParse()
,具体取决于您需要哪种价值。您也可以使用CInt()
或Convert.ToInt32()
,但是当您知道以字符串开头时,解析是最佳选择。
但是让我担心的是,您还应该打开Option Strict
,或者至少打开Option Infer
。其他任何事情实际上都是不好的做法。考虑到这一点,请看下面的代码:
Dim hours As String = GetSomeValueFromUser()
If IsNumeric(hours) Then
If hours < 0 Or hours > 23 Then 'a value can never be both negative *and* greater than 24
'...
End
End If
在任何明智的项目中,这都应该是编译器错误,因为它使用字符串值(hours
)就像是一个数字。首先您用IsNumeric()
检查的没关系。如果您应该使用Option Strict
,那仍然是错误。
这是更好的做法:
Dim hours As String = GetSomeValueFromUser()
Dim hrs As Integer
If Integer.TryParse(hours, hrs) AndAlso hrs>= 0 AndAlso hrs <= 23 Then
'code here
Else
MessageBox.Show("Please enter a Value between 0 and 23" "Input value out of range", MessageBoxButtons.RetryCancel)
End If
这里还有另外一件事:从不为Function声明变量,而编译器不知道显式类型。 Option Infer
可以使那里的水有些混乱,但通常变量的类型应始终已知和固定。