这段代码是什么意思?(VB.NET)

这段代码是什么意思?(VB.NET),vb.net,Vb.net,我是新来的,正在努力学习这门语言:)提前谢谢:) 无论如何,这是我代码的一部分,它计算给定字符串中的元音数 您的代码很好,除了一个小错误:您交换了InStr函数的参数 假设你有 For I = 1 To Len(InputString) If InStr(InputString, Mid(Vowels, I, 1)) Then nVowels = nVowels + 1 End If Next 您当前的代码不适用于

我是新来的,正在努力学习这门语言:)提前谢谢:)
无论如何,这是我代码的一部分,它计算给定字符串中的元音数

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

假设你有

        For I = 1 To Len(InputString)
        If InStr(InputString, Mid(Vowels, I, 1)) Then
            nVowels = nVowels + 1
        End If
    Next
您当前的代码不适用于像
“Sun”
这样的词。原因如下:

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

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

5-回路出口(i=3)

因此,需要重新编写逻辑,以便以另一种方式工作:

Dim Vowels As String
Vowels = "aeiou"

你指的是哪一行,所有的文件都是LEN、ISTR和MID,所有这些都是VB6中提供的VB6兼容方法,考虑不使用它们。由于您正在学习vb.net,请选择一个更好的示例。请查看
InStr
文档。我想你的意思是
InStr(元音,中间(InputString,I,1))
。更好的方法是,接受萨维什的建议,阅读是否使用建议的
Contains
方法,您还需要将第一行的结尾更改为
Len(元音)
。如前所述,您的代码永远不会在单词中找到元音,如“I”、“in”、“to”、“mud”、“book”等@Josh-如果我们计算不同元音的数量,这就没问题了。例如,InputString=“caravan”?女巫应该是什么?1还是3?
 For I = 1 To Len(InputString)
        If InStr(UCase(Vowels), Mid(UCase(InputString), I, 1)) Then
            nVowels = nVowels + 1
        End If
 Next