vb计算机运算符号优先级,关于vb6:Visual Basic 6.0中的运算符优先顺序是什么?

Visual Basic 6.0(vb6)中的运算符优先顺序是什么?

尤其是逻辑运算符。

算术运算优先顺序

^

-(一元否定)

*、/。

\

Mod

+、-(二进制加减)

&

比较运算优先顺序

=

<>

<

>

<=

>=

Like、Is。

逻辑运算优先顺序

Not

And

Or

Xor

Eqv

Imp

资料来源:SAMS 24小时自学Visual Basic 6-附录A:操作员优先权

订单是什么?从最低到最高?

答案的陈述可能有点误导性。三个类别内的顺序是先到后,但类别本身的顺序是先到后:实际上,算术运算是在比较运算之前评估的,而算术运算是在逻辑运算之前评估的。为了更清楚地表达,我建议先进行算术运算,然后进行比较运算,再进行逻辑运算。这里也有很好的参考资料:msdn.microsoft.com/en-us/vba/language-reference vba/articles&zwnj;&8203;/&hellip;

@Markkukero只是修复了部分的顺序,还更改了格式以使用语义标题。

这取决于您是否在调试器中。真的?嗯,有点像。

当然,括号是第一位的。然后是算术(+、-、*、/,等等)。然后比较(>、

If A < B And B < C Then

您可以保证,

iirc,调试器从左到右执行,但编译后的应用程序从右到左执行。我可以把它们倒过来(已经很久了),但重要的是它们是不同的。实际优先级不会改变,但执行顺序可能会改变。

乔尔,这是否意味着,如果左边的计算结果是真的,那么一个或操作(永远)不能跳过右边,如果左边的计算结果是真的,那么对于和假的计算结果也是一样的?

[奥斯卡]:是的。NET定义了执行顺序,并使用Andalso和OrElse逻辑运算符进行短路评估。但vb6总是计算表达式的两边。您必须使用附加的if/else语句来模拟它。

对。大多数现代语言支持短路评估(en.wikipedia.org/wiki/short-circuit_evaluation),但vb6(和不带andalso的vbnet)不支持。

在K&R手册中,建议您的代码不应在逻辑操作总是短路的情况下中继-标准不强制执行此操作,也不强制执行评估顺序。即使在Perl中,它们总是短路的,依赖它的代码也被认为是不好的选择。

很少有语言在这样的语句中指定了精确的计算顺序-通常编译器可以自由地按照它被认为更高效/快速/安全等的方式来进行计算。不应该用任何语言编写依赖于执行顺序的代码!

实际上是一条旁道,但在Perl中,在诸如或die"cannot do it"这样的结构中,依赖优先级是很常见的;但是同意,当前面的人在复杂的语句中不依赖优先级时,生活会更好。

如果您在这样的表达式中编写了依赖于执行顺序的代码,那么您所得到的一切都是应得的!"如果最终维护你的代码的人是一个暴力的精神病患者,他知道你住在哪里。"

使用括号

编辑:这是我对新代码的建议!但是奥斯卡正在读别人的密码,所以一定要想办法弄清楚。我建议使用vb6手册主题运算符优先级。不幸的是,此主题似乎不在msdn联机vb6手册中,因此我将在此处粘贴逻辑运算符信息。如果安装了vb6帮助(msdn库),您的计算机上就会有它。

逻辑运算符的计算顺序如下:

Not

And

Or

Xor

Eqv

Imp

本主题还解释了比较运算符和算术运算符的优先级。

我建议,一旦你算出进位,你就加上括号,除非有充分的理由不编辑代码。

如果我不必读别人的代码,这是个不错的选择…

哦,我感觉到你的痛苦。我在回答中多加了一些。运算符优先级在VB6帮助中

+1对于建议,因为它仍然是很好的建议。顺便说一句,我不明白为什么人们首先要把这么多的操作符塞进一行代码中。有时我希望语言没有定义优先顺序,这样人们就必须使用括号来明确他们要完成的到底是什么。我想总是有口齿不清…

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值