我是 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/