我希望我的程序(visual basic)随机选择时间(*)或除(/),以便在程序后面的等式中用作运算符。我还没有开始,因为这是变量的声明。感谢。
答案 0 :(得分:0)
您没有提供任何代码,因此可以有许多解决方案。你只有两个操作员,所以我认为最好的方法就是使用条件。基础知识是使用Random
类,If
或Case
。
代码可能如下所示:
Function DoSomeOperation(ByVal a As Double, ByVal b As Double, Optional ByRef op As String = "") As Double
Dim rnd As New Random()
Select Case rnd.Next(0, 2)
Case 1
op = "/"
Return a / b
Case Else
op = "*"
Return a * b
End Select
End Function
此代码将返回操作结果,以及op
参数中使用的操作。 rnd.Next(0, 2)
语句返回0
或1
(因为maxValue 2
是独占上限)。
*在现实生活中,您应该检查结果是否超过Double
限制,并执行try..catch
。
在控制台应用中使用功能的示例:
Dim a As Double = 8
Dim b As Double = 2
Dim op As String = ""
Dim result As Double = DoSomeOperation(a, b, op)
Console.WriteLine(String.Format("{0} {1} {2} = {3}", a, op, b, result))
Console.ReadKey()
'Output: 8 * 2 = 16 or 8 / 2 = 4
要回答@WickedJDG评论,如果您希望在1到12之间随机选择a
和b
,则可以使用此功能:
Function DoSomeRandomOperation(Optional ByRef a As Double = 0, Optional ByRef b As Double = 0, Optional ByRef op As String = "") As Double
Dim rnd As New Random()
a = rnd.Next(1, 13)
b = rnd.Next(1, 13)
Select Case rnd.Next(0, 2)
Case 1
op = "/"
Return a / b
Case Else
op = "*"
Return a * b
End Select
End Function