PHP if else语句性能方面的最差情况 功能象限($x,$y){ 如果($x>=0&$y>=0) $result=“点($x,$y)位于第一个量子点”; 如果($x=0),则为else $result=“点($x,$y)位于第二个量子点”; 否则如果($x=0)
在性能方面最差的$x或$y值是多少?进行了多少次比较PHP if else语句性能方面的最差情况 功能象限($x,$y){ 如果($x>=0&$y>=0) $result=“点($x,$y)位于第一个量子点”; 如果($x=0),则为else $result=“点($x,$y)位于第二个量子点”; 否则如果($x=0),php,Php,在性能方面最差的$x或$y值是多少?进行了多少次比较 就性能而言,$x或$y的价值是多少?进行了多少比较?这只是一个计数的问题 最佳情况:x和y均为非负。2个比较($x>=0和$y>=0) 最坏情况:x为非负,y为负。6比较。这是因为,如果第一条语句已经是false,php将停止在&&处,因为无论第二条语句返回什么,结果都不可能是true。因此,第二个和第三个if将在$xh之后停止计算您需要运行此函数多少次?如果少于数万次,差异是可以忽略的。(找出这一点的最可靠的方法可能是自己测试它,使用您拥有
就性能而言,$x或$y的价值是多少?进行了多少比较?这只是一个计数的问题 最佳情况:x和y均为非负。2个比较(
$x>=0
和$y>=0
)
最坏情况:x为非负,y为负。6比较。这是因为,如果第一条语句已经是
false
,php将停止在&&
处,因为无论第二条语句返回什么,结果都不可能是true
。因此,第二个和第三个if
将在$xh之后停止计算您需要运行此函数多少次?如果少于数万次,差异是可以忽略的。(找出这一点的最可靠的方法可能是自己测试它,使用您拥有的不同案例)需要更多信息。你的问题似乎不完整。这个问题可能是他的老师提出的,因为他理解这个问题。我没有:)对于提供的代码,它是8(即使最后一个else if
可以被一个简单的“else”替换@Asenar:php在&
处停止,如果第一条语句已经是false
,因为无论第二条语句返回什么,结果都不可能是true
。因此,第二条和第三条if
将在$x@Asenar:这也意味着如果他确实删除了最后一个if
如果只剩下else
,最坏的情况将是5。顺便说一下,此功能通常用于缩短分支:someBoolean&&trueFunction();
相当于if(someBoolean)trueFunction();
,而someBoolean | false function();
相当于if(!someBoolean)false function());
,后者主要用于捕获“错误”,其中某些函数在出现错误时只返回false,并将错误处理留给程序员。你是对的,对不起,我忘记了只检查第一个条件的事实。我建议你在回答中加上这一点;)
function quadrant($x,$y) {
if( $x >= 0 && $y >= 0 )
$result = "point ($x,$y) lies in the First quandrant";
else if( $x < 0 && $y >= 0)
$result = "point ($x,$y) lies in the Second quandrant";
else if( $x < 0 && $y < 0)
$result = "point ($x,$y) lies in the Third quandrant";
else if( $x >= 0 && $y < 0)
$result = "point ($x,$y) lies in the Fourth quandrant";
return $result;
}
$x=1;
$y=1;
$q = quadrant($x,$y);
function quadrant($x,$y) {
if( $x >= 0 ) {
if( $y >= 0)
return "point ($x,$y) lies in the First quandrant";
else
return "point ($x,$y) lies in the Fourth quandrant";
}
else if( $y >= 0)
return "point ($x,$y) lies in the Second quandrant";
else
return "point ($x,$y) lies in the Third quandrant";
}