查看: 440  |  回复: 0
  VB6 测试if中and前后是否都需要被检查,这个和C++的短路操作不同
楼主
发表于 2024年2月3日 21:46

用个例子就知道了,打开立即窗口(Ctrl+G),输入代码:

if 1=0 and 1/0 then print "ok"

运行出错,放在程序中也一样出错。

证明了and前后都会被检查,也就是会消耗CPU资源。

我们再看下C++是如何的,运行VC6:

#include <iostream>
using namespace std;

int main() {
	int intA=0;
	if (1==2 && 1/intA)
	{
		cout << 'a' << endl;
	}else{
		cout << 'b' << endl;
	}
	return 0;
}

运行结果:

b

证明了C++的短路操作在第一个条件不满足的情况下,就不管后面的条件了。

这个有什么用?适用于优化代码。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com