这段代码意味着什么?(VB.NET)

时间:2015-07-06 08:33:30

标签: vb.net

        For I = 1 To Len(InputString)
        If InStr(InputString, Mid(Vowels, I, 1)) Then
            nVowels = nVowels + 1
        End If
    Next

我是新手,并尽我所能学习这门语言:)提前谢谢:) 无论如何,这是我的代码的一部分,它计算给定字符串中的元音数量。

1 个答案:

答案 0 :(得分:1)

您的代码很好,除了一个小错误:您交换了InStr函数的参数..

假设你有

Dim Vowels As String
Vowels = "aeiou"

您当前的代码不适用于"Sun"这样的字词。原因如下:

1-您的for循环将被初始化为从1到3(“Sun”的长度)

的计数

2-您正在检查“Sun”是否包含元音的第一个字符(a)。 3-检查“Sun”是否包含元音的下一个字符(e)。 4-检查“Sun”是否包含元音(i)的下一个字符。

5-循环退出(i = 3)。

因此需要重新编写逻辑以反过来工作:

 For I = 1 To Len(InputString)
        If InStr(UCase(Vowels), Mid(UCase(InputString), I, 1)) Then
            nVowels = nVowels + 1
        End If
 Next