在 variable/array 中使用运算符 - VBS
Using operators in variable/array - VBS
是否可以在变量中使用数学运算符?
TL;DR 版本:
我正在玩 VBS,想知道是否可以创建一个脚本,根据数学方程式为您提供运算符,但不能将运算符存储在变量中以对其进行测试。
示例:
3 ? 4 = 12
结果应该是:
"*"
长版:
我实际上想做的是找出给定范围内方程式的所有可能结果:
示例:
鉴于
0 < X < 21
0 < Y < 21
a, b, c = {"+", "-", "*", "/"}
我想得到以下等式的所有可能结果
X a Y b X c Y = 10
我所做的是 运行 多个 for 循环并检查每个可能的结果。但是我不知道如何将运算符插入数组。
到目前为止我得到了什么:
Dim x
Dim y
for i = 1 to 20
x = i
for j = 1 to 20
y = j
if x + y + x + y = 10 then msgbox x & " " & y
next
next
你想要的是通过用所需的表达式构建一个字符串然后使用 Eval
来计算它来实现的:
X = 3
Y = 6
a = "+"
expr = X & " " & a & " " & Y
WScript.Echo Eval(expr) 'output: 9
不过,代码的运行时评估可能会导致各种问题,因此请务必小心使用它的目的。
是否可以在变量中使用数学运算符?
TL;DR 版本:
我正在玩 VBS,想知道是否可以创建一个脚本,根据数学方程式为您提供运算符,但不能将运算符存储在变量中以对其进行测试。
示例:
3 ? 4 = 12
结果应该是:
"*"
长版:
我实际上想做的是找出给定范围内方程式的所有可能结果:
示例:
鉴于
0 < X < 21
0 < Y < 21
a, b, c = {"+", "-", "*", "/"}
我想得到以下等式的所有可能结果
X a Y b X c Y = 10
我所做的是 运行 多个 for 循环并检查每个可能的结果。但是我不知道如何将运算符插入数组。
到目前为止我得到了什么:
Dim x
Dim y
for i = 1 to 20
x = i
for j = 1 to 20
y = j
if x + y + x + y = 10 then msgbox x & " " & y
next
next
你想要的是通过用所需的表达式构建一个字符串然后使用 Eval
来计算它来实现的:
X = 3
Y = 6
a = "+"
expr = X & " " & a & " " & Y
WScript.Echo Eval(expr) 'output: 9
不过,代码的运行时评估可能会导致各种问题,因此请务必小心使用它的目的。