【发布时间】:2019-08-07 14:04:34
【问题描述】:
我期待一种方法来开发一种优雅的方式来将 Cm 转换为 Meter,反之亦然,而不使用 IF 条件或 Select Case,仅适用于布尔类型。 这些“tmp”变量操作将以一种优雅的方式进行,当值已经在 Meters 中时不会改变。
MyVariable
tmp= Not(MyVariable>100)
tmp= (MyVariable*tmp)/100 '(Converting to meters in case the Value is in Cm)
【问题讨论】:
-
if有什么不好? -
tmp = MyVariable if MyVariable <= 100 else MyVariable / 100 -
这个想法没有使用 IF 或 Select Case。
-
除了模糊使用
tmpvariable 和不同的类型分配(首先是布尔值,然后是数字)之外,还不清楚如何仅通过 ist 数值区分米和厘米。按照您的逻辑,您从计算中完全 排除 数字 大于 100,因为tmp将是False从而导致 零 乘法和结果0的(即使不是这样,也不清楚您期望有效的仪表输入如何)。此外,为您的 cm 指示(即 True 的tmp变量具有-1的值,因此会导致可能不需要的 negative 结果:-)