首页 /编程语言和算法/VB6/ASP
 VB6 测试if中and前后是否都需要被检查,这个和C++的短路操作不同
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++的短路操作在第一个条件不满足的情况下,就不管后面的条件了。

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

 
全部回复(0)
首页 | 电脑版 |