如果中的多个语句是否与多个 if 相同?

are multiple statements inside an if the same as multiple ifs?

本文关键字:if 相同 语句 如果 是否      更新时间:2023-10-16

is

if(a == 0 && b == 0 && c == 0) { return; }

if(a == 0) { return; }
if(b == 0) { return; }
if(c == 0) { return; }

if(a == 0) { return; }
else if(b == 0) { return; }
else if(c == 0) { return; }

我想编写快速代码,并且对这些语句通常如何解释为汇编指令感兴趣。

if(a == 0 && b == 0 && c == 0) { return; }

这相当于:

if(a == 0)
if(b == 0)
if(c == 0)
return;

然而,这两个:

//1
if(a == 0) { return; }
if(b == 0) { return; }
if(c == 0) { return; }
//2
if(a == 0) { return; }
else if(b == 0) { return; }
else if(c == 0) { return; }

等效于if( a==0 || b == 0 || c == 0){ return; }.

如上所述

if(a == 0 && b == 0 && c == 0) { return; }

if(a == 0) 
if(b == 0) 
if(c == 0) 
return;

if(a == 0) { return; }
else if(b == 0) { return; }
else if(c == 0) { return; }

等于

if(a == 0 || b == 0 || c == 0) { return; }

但仅在此示例中,因为我们在每个 if 状态中返回 0。