我有以下代码按预期工作:
bool result=false;
for(int i=0;i<n;i++)
{
if(face[i].intersect(*coordinates, org, dir))
{
result = true;
}
}
return result;
但是这个行为有不同的行为(coordinates
指向的值不同)
bool result=false;
for(int i=0;i<n;i++)
{
result = result || faceList[i].intersect(*coordinates, org, dir, triangle);
}
return result;
原因是什么? ||
之后的表达式是否从未评估过前面的表达式是否为真?我认为这种优化只能在if
声明中使用。