arrays - Visual Basic 数组 case 语句

标签 arrays vb.net vba case

我是 Visual Basic 的新手,一直在使用 vb.net 创建基于控制台/文本的游戏。我想让我的游戏变得更“智能”一点。我必须这样做的想法是创建一个 yes 的同义词数组和 no 的同义词数组,以及 over 单词的类似数组。我打算使用带有数组的 case 语句来确定用户输入是否是"is"或“否”的同义词。到目前为止我还没有运气,我想知道这里是否有人知道如何做到这一点,或者我是否找错了树。也许我有不同的方法来解决这个问题?

我的选择尝试:

Select Case userInput
    Case yes(0) To yes(34)
        Console.WriteLine("you said something like yes, you said {0}", userInput)

End Select

我的数组的开头:(到目前为止有 34 个同义词)

Dim yes(0 To 34) As String

yes(0) = "yes"
yes(1) = "ok"
yes(2) = "yep"
yes(3) = "yeah"

如果有人可以帮助我,我将不胜感激:)非常感谢!

最佳答案

您不必为此目的使用Select Case。一个简单的 List(Of T).Contains 就可以解决这个问题。然后您可以继续将其放入一个函数中,以便您可以在应用程序中多次调用它。

示例代码:

Public Enum Answer
    Yes
    No
    Other
End Enum

Public Function GetAnswer(answer As String) As Answer
    Static yesAnswers = New List(Of String)({"yes", "yeah", "yep", "aye"})
    Static noAnswers = New List(Of String)({"no", "nope", "nay"})

    If yesAnswers.Contains(answer.ToLower()) Then
        Return Answer.Yes
    ElseIf noAnswers.Contains(answer.ToLower()) Then
        Return Answer.No
    Else
        Return Answer.Cancel
    End If
End Function

关于arrays - Visual Basic 数组 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868546/

相关文章:

c - 从函数返回 int 类型数组的问题

java - 将字节数组编码解码为字符串而不丢失数据

VB.NET 如何将光标方向更改为从右到左或从左到右?

MS-Access VBA : form_error vs on error

vba - 遍历一列以将字体大小为 10 的单元格向下移动一行

excel - 在 Excel 2010 中生成数据透视表的 VBA 代码

javascript - 如何在javascript中分离一个json数据

javascript - 对数组应用条件

c# - 为什么在 C# 中这在成员初始值设定项中是不允许的,但在 VB.Net 中是允许的

javascript - 从vb.net中的vb窗口窗体调用html javascript函数