if (conditionA && conditionB) { return true; }
if (conditionA && !conditionB) { return false;}
**或**
if (conditionA) {
if (conditionB) {
return true;
}
return false;
}
如有必要,可以提供更多背景信息吗?不同语言的不同之处是什么?一切都一样吗?
答案 0 :(得分:3)
我建议:
if (condition A) {
return conditionB;
}
我的理由如下:
if (conditionA
违反了“不要重复自己”#34;原理。如果您在一个地方更改它,则需要在两个地方进行更改if (condition) return true else return false;
似乎不必要地复杂。答案 1 :(得分:0)
return conditionA && conditionB;
答案 2 :(得分:0)
似乎所有都在逻辑上相同。
如果是在Java中,您可以进一步将它们缩短为return conditionA && conditionB
答案 3 :(得分:0)
我遵循的一条黄金法则是尽可能多地避免嵌套。但如果以使我的单一条件过于复杂为代价,我不介意将其嵌套。
除了你使用短路&&运营商。因此,如果布尔值为false,它甚至不会尝试匹配!
在这种情况下,您应该分两部分查看您的代码。
首先,检查第一个条件。如果这个条件为真,那么你需要根据conditionB做出另一个决定。
因此,后者是更好的选择,尽管我会重构如下:
if (conditionA) {
return conditionB;
}
答案 4 :(得分:0)
所有条件都相同
拿这个......
if (conditionA && conditionB) { return true; }
编译器只检查其他条件,并且只有在第一个条件为真时才会结束。
所以无论你使用哪种条件。编译器相应地优化它。
答案 5 :(得分:0)
让我们进行比较
if (conditionA && conditionB) { return true; }
if (conditionA && !conditionB) { return false;}
<强> VS 强>
if (conditionA) {
if (conditionB) {
return true;
}
return false;
}
性能明智的第一个代码很差,因为如果 if(conditionA&amp;&amp;&amp; conditionB)的第一个条件错误,编译器将检查第二个条件 if(conditionA&amp;&amp; ;!conditionB)
而在第二个代码中如果(conditionA)错误,编译器将不会检查任何其他条件,因此两个条件的输出在每个条件下相同但性能会有所不同
在所有这些条件下,如果conditionA
在任何情况下都为假,则conditionA
必须为真,那么我认为不需要检查条件b以及conditionA
是否为true
conditionB
和true
为真,则返回false
,如果conditionB
为false,则返回if(conditionA){
conditionB
}
,以便您也可以将其写为
{{1}}
答案 6 :(得分:-1)
(1)语法
if (conditionA && conditionB) { return true; }
if (conditionA && !conditionB) { return false;}
(2)语法
if (conditionA) {
//Only conditionA is true you can write more code and other logic here
if (conditionB) {
return true;
}
//conditionB is true or false, you can write more code and other logic here
return false;
}
实际上这两个语法不相同。
至于你的标题问题,没有必要决定哪种语法在语法相同方面更正确?
因此,根据这些差异,您应该选择符合您逻辑的语法。
您的逻辑可能是答案,哪种语法更正确。