Questions tagged «conditions»

19
我应该尽早从函数返回还是使用if语句?[关闭]
我经常用两种格式编写这种函数,我想知道一种格式是否比另一种格式更受青睐,为什么。 public void SomeFunction(bool someCondition) { if (someCondition) { // Do Something } } 要么 public void SomeFunction(bool someCondition) { if (!someCondition) return; // Do Something } 我通常使用第一个编码,因为这是我的大脑在编码时的工作方式,尽管我认为我更喜欢第二个编码,因为它可以立即处理所有错误,而且我觉得它更易于阅读

15
开发人员坚持认为,语句不应具有否定条件,而应始终具有else块
我有一个相识的人,一个比我经验丰富的开发人员。我们在谈论编程实践,而他对“ if”语句的处理方式让我感到惊讶。他坚持一些关于if陈述的做法,我觉得这很奇怪。 首先,在if语句后应加上else语句,无论是否要放入其中。导致代码如下所示: if(condition) { doStuff(); return whatever; } else { } 其次,最好测试真值而不是假值。这意味着最好测试“ doorClosed”变量而不是“!doorOpened”变量 他的观点是,这使代码的工作更加清晰。 这让我很困惑,因为如果他想在不满足条件的情况下执行某些操作,那么这两个规则的组合会使他编写此类代码。 if(condition) { } else { doStuff(); return whatever; } 我对此的感觉是,它确实很丑陋和/或质量改进(如果有)可忽略不计。但是作为一个大三学生,我很容易怀疑自己的直觉。 所以我的问题是:这是好/坏/“无关紧要”的做法吗?这是惯例吗?

24
处理if(if else)else的优雅方法
这是个小问题,但是每次我必须编写类似这样的代码时,重复都会困扰我,但是我不确定任何解决方案都不会更糟。 if(FileExists(file)) { contents = OpenFile(file); // <-- prevents inclusion in if if(SomeTest(contents)) { DoSomething(contents); } else { DefaultAction(); } } else { DefaultAction(); } 这种逻辑有名称吗? 我也有点强迫症吗? 如果出于好奇,我愿意接受邪恶的代码建议...

25
三元运算符被认为有害吗?[关闭]
例如,您是否更喜欢这种单线 int median(int a, int b, int c) { return (a<b) ? (b<c) ? b : (a<c) ? c : a : (a<c) ? a : (b<c) ? c : b; } 还是涉及多个return语句的if / else解决方案? 什么时候?:合适,什么时候不合适?应该向初学者讲授还是隐藏起来?

11
为什么我们必须使用中断开关?
谁决定(并基于什么概念)在每个语句中switch必须使用(多种语言)构造break? 我们为什么要写这样的东西: switch(a) { case 1: result = 'one'; break; case 2: result = 'two'; break; default: result = 'not determined'; break; } (在PHP和JS中注意到这一点;可能有许多其他语言正在使用此语言) 如果switch是的替代选择if,为什么我们不能使用与相同的构造if?即: switch(a) { case 1: { result = 'one'; } case 2: { result = 'two'; } default: { result = 'not determined'; } } 据说这break阻止了当前块之后的块的执行。但是,是否有人真的遇到了需要执行当前块及其后续块的情况?我没有 …
74 conditions 

4
if('constant'== $ variable)与if($ variable =='constant')
最近,我已经在PHP中进行了大量工作,尤其是在WordPress框架中。我注意到许多形式的代码: if ( 1 == $options['postlink'] ) 我本来希望看到的地方: if ( $options['postlink'] == 1 ) 这是某些语言/框架中的约定吗?是否有任何理由使前一种方法比后者更好(从处理角度,解析角度甚至人的角度来看)? 还是仅仅是口味问题?我一直认为执行测试时会更好,因为针对某个常量测试的变量项位于左侧。似乎更好地映射了我们用自然语言提出问题的方式:“如果蛋糕是巧克力”而不是“如果巧克力是蛋糕”。

13
如何编辑一系列if-else if语句,使其遵循Bob叔叔的“清洁代码”原则?
我正在尝试遵循Bob叔叔的干净代码建议,尤其是要使方法简短。 我发现自己无法缩短此逻辑: if (checkCondition()) {addAlert(1);} else if (checkCondition2()) {addAlert(2);} else if (checkCondition3()) {addAlert(3);} else if (checkCondition4()) {addAlert(4);} 我无法删除其他元素,因此将整个事物分解为较小的部分,导致“其他条件”中的“其他”有助于性能-评估这些条件的成本很高,如果我可以避免评估以下条件,请导致第一个条件是的,我想避免它们。 即使从语义上来讲,从业务的角度来看,如果满足下一个条件,评估下一个条件也是没有意义的。 编辑:此问题被认为是处理if(if else)else的优雅方式的可能重复。 我相信这是一个不同的问题(通过比较这些问题的答案,您也可以看到它)。 我的问题是检查第一个接受条件是否很快结束。 链接的问题试图使所有条件都可以接受,以便做某事。(从该问题的最佳答案中可以看出:https : //softwareengineering.stackexchange.com/a/122625/96955)

6
如果条件允许,最可读的格式化长条格式?[关闭]
if尽可能避免长绕组条件,但有时我们最终都会编写它们。即使这是一个非常简单的条件,有时所涉及的语句也很罗condition,因此整个条件最终变得非常冗长。格式化这些格式最可读的方式是什么? if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { thud(); } 要么 if ( FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy ) { thud(); } 要么 if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { thud(); } 要么 thudable = FoobarBaz::quxQuux(corge, grault); thudable ||= !garply(waldo); thudable …


7
在控制流使其多余的情况下应使用“其他”吗?
有时我会偶然发现类似于以下示例的代码(此函数的确切作用超出了此问题的范围): function doSomething(value) { if (check1(value)) { return -1; } else if (check2(value)) { return value; } else { return false; } } 正如你所看到的,if,else if和else语句与配合使用return的语句。对于一个偶然的观察者来说,这似乎很直观,但是我认为(从软件开发人员的角度来看)删除else-s并简化这样的代码会更加优雅: function doSomething(value) { if (check1(value)) { return -1; } if (check2(value)) { return value; } return false; } 这是有道理的,因为return语句后的所有内容(在相同范围内)将永远不会执行,从而使上面的代码在语义上与第一个示例相同。 以上哪一项更符合良好的编码习惯?两种方法在代码可读性方面都有缺点吗? 编辑:重复的建议已被提出,该问题仅供参考。我认为我的问题涉及另一个主题,因为我并不是要避免像另一个问题中那样重复陈述。这两个问题都试图减少重复,尽管方式略有不同。

5
否则-重复代码逻辑
老板给了我一个具有特定逻辑的项目。我必须开发一个网页,该网页必须带领导航员处理很多情况,直到他/她找到产品为止。 这是站点中导航的路径方案: 重要! 在产品页面中,导航器可以选择他想要的过滤器。 如果是A,则他/她必须通过B(然后是C)或C,然后到达产品。 如果是B,则他/她必须经过C并到达产品。 如果为C,则他/她直接到达产品。 当然,如果我从AI开始走的是最长的路,当我到达产品时,我将拥有3个有源滤波器。 到目前为止,我开发了下面的代码,效果很好。 if filter_A if filter_B filter_C() .. else .. else filter_C .. else .. else if filter_B filter_C() .. else .. else filter_C() .. else .. 我在这里问一个更专业的程序员在这种情况下会做什么。我不尊重DRY原理,我不喜欢它,我想知道开发这种逻辑的另一种方法。 我曾考虑过将代码的每个部分拆分为函数,但是在这种情况下,这是一个好主意吗?


3
更好地保护方法调用或方法本身?
我正在编写一个应用程序,到此为止: private void SomeMethod() { if (Settings.GiveApples) { GiveApples(); } if (Settings.GiveBananas) { GiveBananas(); } } private void GiveApples() { ... } private void GiveBananas() { ... } 这看起来很简单。有一些条件,如果满足,则将调用方法。但是,我在想,这样做是否更好: private void SomeMethod() { GiveApples(); GiveBananas(); } private void GiveApples() { if (!Settings.GiveApples) { return; } ... } private void GiveBananas() …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.