如果 条件1=true and 条件2=true then
{执行程序;}如果 条件1=true then
{如果 条件2=true then
执行程序
}
}
这两个语句计算机计算速度是不是一样呢?
对于第一个程序 是不是计算机必须把两个条件全部判断完才进行计算,还是先计算条件1=false ,然后不再判断条件2呢?
{执行程序;}如果 条件1=true then
{如果 条件2=true then
执行程序
}
}
这两个语句计算机计算速度是不是一样呢?
对于第一个程序 是不是计算机必须把两个条件全部判断完才进行计算,还是先计算条件1=false ,然后不再判断条件2呢?
And都会比较,AndAlso第一个假第二个不比。
C#
&& 第一个假第二个不比。
{
Console.WriteLine("foo1");
return false;
}
bool foo2()
{
Console.WriteLine("foo2");
return false;
}
if (foo1() && foo2())
{
...
}如果输出2行,就是都执行。输出一行就是只执行一个,自己就能验证。
先计算条件1=false ,然后不再判断条件2
这非常明确,c#就是可以仅仅判断第一个而不判断第二个。如果你是从某些文章上看到这个说法,我猜你是从十八年前关于vb4以前的vb开发平台的介绍文章上看到的吧。那时也许热衷于介绍这个,因为早期的vb确实有这个问题。但是将近20年了,vb早就改掉了。而之后的微软平台根本无需担心这类问题。