我对以下场景(C++)有疑问:
说,我有一个if条件
if ( a ? b ? c : d : false)
{
// do something
}
else
{
// do something else
}
Run Code Online (Sandbox Code Playgroud)
这是我对其工作原理的解释:
If a is true, it checks b. Then,
- If b is true, the if loop is reduced to if (c)
- If b is false, the if loop is reduced to if (d)
If a is false, the if loop is reduced to if (false)
Run Code Online (Sandbox Code Playgroud)
我的理解是否正确?
使用这个更好还是多个if/ else支票?
请在括号中使用它,因为它有助于提高可读性。另外,使用多个三元运算符也可以。
if ( a ? (b ? c : d) : false)
{
// do something
}
else
{
// do something else
}
Run Code Online (Sandbox Code Playgroud)
你的问题分为两部分,首先是关于声明的行为,然后是关于你是否应该这样做; 请允许我向您展示有多少程序员会解决第二个问题.
想象一下,星期六早上4点30分,你就会被挂掉,这段代码中有一个错误,你需要在接下来的30分钟内修复它,否则你的工作/业务就会面临风险.
if (a ? b ? c : d : false)
Run Code Online (Sandbox Code Playgroud)
要么
if (a) {
if (b)
return c;
else
return d;
} else {
return false;
}
Run Code Online (Sandbox Code Playgroud)
要么
if (!a)
return false;
if (!b)
return d;
return c;
Run Code Online (Sandbox Code Playgroud)
要么
if (a)
return b ? c : d;
else
return false;
Run Code Online (Sandbox Code Playgroud)
哪个是正确的选择?