http://i.imgur.com/NRGcq3q.png
输出和我的代码,我稍微更新了代码,但它仍然显示相同的输出。
下面是整个代码,顺便说一句:http://pastebin.com/QRExvWpa
(如果你想知道程序是什么,我们必须检查用户ID的格式,第一个字母应该是大写,接下来的3应该是小写,然后接下来的3应该是数字,它的尚未完成)
答案 0 :(得分:0)
首先,您的输入长度应为7而不是6: 第一个大写字母,3个较低的大写,最后是3个数字 因此,您的主“if”子句始终无法使用您的代码。
从你的代码:
如果Len(userID)= 6那么
以下是解决方案的示例。
我可以使用正则表达式以一种非常简单的方式解决这种情况(尝试自己阅读它!)或编写另一个函数来检查字符串是否为数字。
但我决定不提供你可能理解的简单解决方案。
我希望你能理解我的代码。
随意要求澄清。
Private Function checkUserID(ByVal userid As String) As Boolean
Dim result As Boolean = False 'this is what the function returns
Dim i As Integer 'this is a temporary variable for counting during the while-loop
Dim t As Integer 'this is a temporary boolean flag to decide if should continue the while As Boolean
userid = userid.Trim()
If userid.Length = 7 Then
If ((userid(0) >= "A") And (userid(0) <= "Z")) Then
i = 1
t = True
While (t And (i <= 3))
If ((userid(i) < "a") Or (userid(i) > "z")) Then
t = False
End If
i = i + 1
End While
If t Then
i = 4
result = True
'Since I know this is the last part, I used the final result flag and not the t flag
'And in the end, the result value is the function value.
While (result And (i <= 6))
If ((userid(i) < "0") And (userid(i) > "9")) Then
result = False
End If
i = i + 1
End While
End If
End If
End If
Return result
End Function
使用方法:
Dim x1 As String = "Abcd123"
Dim x2 As String = "A123bcd"
Dim b As Boolean
b = checkUserID(x1)
MsgBox(x1 & "=" + b.ToString)
b = checkUserID(x2)
MsgBox(x2 & "=" + b.ToString)