![]() |
1
50
我在调试“else if”语句时从未遇到过问题。我认为使用“else if”语句是干净的,它可以与程序员通信,读取“elseif”语句组互斥的代码。 |
![]() |
2
12
完全等同于:
以同样的方式:
完全等同于:
它是100%的风格,不管一个比另一个更可读还是更不可读,都是基于您的编程文化、语言以及语句的复杂程度的一个完全判断调用。 |
![]() |
3
9
if/if else语句不会产生错误代码,我会的。 |
![]() |
4
8
两者之间的区别
|
![]() |
5
8
也许你的老板只是想早点回来。
我不经常需要
所以不是:
我喜欢打字:
|
![]() |
6
3
“else if更难调试”这句话很荒谬。我建议你以后不要向那个人求助。 使用语义正确的解决方案。如果解决方案是:
然后
如果解决方案是:
然后
|
![]() |
7
2
在正常使用中,没有什么问题
唯一的时间
这类事情可能会给你一个糟糕的“如果”的体验,但这只是糟糕的编码;如果没有其他的,你也可以做同样糟糕或更糟糕的事情。 |
![]() |
8
2
我喜欢这句老话“调试比写代码难两倍”,所以如果你写的代码像你所能写的那么聪明,从定义上讲,你就没有足够的聪明去调试它。因此,我尝试使代码易于读取和调试(有时这是不可能的)。也就是说,我不认为别人很聪明,所以我会继续使用它。 |
![]() |
9
1
我认为这不是真的。if,else if语句非常简单,易于调试。我想这可能取决于调试人员,但根据我的经验,没有任何区别,而且我也没有听到任何人在尖叫:“该死的,如果!”在调试他的代码时。 |
![]() |
10
0
如果“else-if”是一个非首选的结构,那么为什么几乎每种现代语言都提供它呢?我认为你可以继续使用其他的假设…此外,当它撞到组件时,它就完全是一个跳跃/转到;() |
![]() |
11
0
我也不同意。“else if”没有什么本质上更困难的;它是否是正确的编程方法取决于每个应用程序。在某些情况下,“switch”或“case”语句更好,但同样,这取决于应用程序。 在我看来,制定这样的硬性规定太过局限了。 |
![]() |
12
0
这两种形式都采用相同的调试工作。我敢说“else if”语句实际上使调试更容易… 此外,“else if”语句提高了性能,因为您的程序不必检查实际上相互排斥的条件! |
![]() |
13
0
为什么不尝试在代码中搜索n用ifs替换所有其他ifs?它将编译,但只有在您幸运的时候才能按需要执行… 这是不一样的,有一个原因,为什么有如果和为什么有其他如果。 前任:
我个人更喜欢橘子!苹果是如此的普通… 我认为香蕉也很好(但这种情况会不时发生变化!) 还有switch语句。 这些控制结构都做了一些不同的事情,并且不是多余的,这就是为什么它们都存在的原因。 你不能说使用哪一种并不重要,它也不是样式或更好的可读代码之类的问题。 我甚至会说,对于每个用例,都有一个最佳的控制结构可以使用! 请考虑以下示例:
你唯一能做的就是替换
通过
但我想这不是你要的? |
![]() |
14
0
这比:
|
![]() |
15
0
“if语句”的形式为:
语句的有效形式之一是“if语句”。让我们将上面的'statement2'转换为'if语句'
空白和定位只是为了您的利益(可读性)。编译器本身对“else if”一无所知。 这表明“if”和“else if”不是同一回事。else if'是复合语句。 语句的另一个有效形式是用括号包围的语句块。这就是为什么你经常(通常)看到“if语句”中的括号。是否在单个语句周围使用它们只是风格问题。 使用“else-if”的原因是,您不必处理已知将计算为false的“condition”表达式。你知道这是因为你已经检查过的其他条件。 也许你的老板说你可能在这些假设中犯了一个错误,“如果”的陈述可能隐藏了一些细微的错误。我想这是完全可能的。不过,这对我来说似乎不值得花这么多钱。 关于“switch语句”,他有什么要说的? |
![]() |
16
0
无论您以何种方式编写代码,您都应该记住,可以使用语言语法来提高代码的可读性,并向您的同事说明这些代码行背后的想法。
所以…明智的选择任何一种方式。误用的一个例子是吸收许多
|
![]() |
17
0
这取决于你想完成什么。两者都是可接受的编码形式,这取决于您正在做什么。例如,如果您希望确保检查每个比较并确保运行所有代码的可能性,那么应该使用单数形式
在这个例子中, 全部的 使用运行的每个代码块的可能性检查条件。
如果您只想从多个选项中运行一个代码块,那么应该使用
在第二个示例中, 最多 检查所有条件,但可能只检查一个。然而, 正好一个 执行代码块(假设在没有条件的情况下有默认操作,则计算结果为true)。 你的老板不一定像大家说的那样是个白痴,但你可能误解了他的意图。当您考虑它时,所有条件代码本质上都是由一些多选项代码(第二个示例)组成的独立块(第一个示例)。
然而,如果你的老板教条主义地说,你永远不应该参与进来,那他可能是个白痴。
|
![]() |
18
0
你在比较
到:
1)第一个示例更难调试,因为您没有第二个示例所提供的代码的自然工作流。 2)正如Jason所指出的,第一个示例的性能不同于第二个示例,因为这三个if语句在任何情况下都将被测试,而第二个示例在变为真时将停止测试。 你的老板是错的,尽管他也可以上网。 |
![]() |
19
0
我是一个总程序员,有时我的下属误解了我。当我谈到具体的案例时,很多时候他们把它当作一个“规则”,并试图在代码库的任何地方强制执行它。我不确定这是不是你的情况,或者你的老板曾经是我的下属?
关于这个问题,
|
|
20
0
JDV给出的答案似乎是正确的。 我来这里是想找一个非常类似西姆拉的答案。但是,问题所有者选择的答案不正确。正确/正确的答案是关于早期返回和清晰的样式,以及嵌套太多if-then-else语句通常不是一种好的编程风格的事实。因此,调试写得不好的代码总是更困难的。 结论:条件代码应尽可能清晰/简单,以便在编程或调试阶段,人可以轻松地管理涉及的变量。 |
|
21
0
使用一堆
例子:
在这种情况下,如果我们使用15作为x,那么颜色将被覆盖
但是,如果我们使用
在这种情况下,颜色将是蓝色的,因为我们将忽略seconds语句,因为第一个语句已经是真的。 |
![]() |
SRobertJames · 使用printf的gdb显示 1 年前 |
|
Subin · 在vscode中运行c时出错 1 年前 |
![]() |
Community wiki · 如何调试Python内存故障? 1 年前 |
![]() |
Kai · 有什么方法可以轻松优化VSCode中的锈迹? 2 年前 |
![]() |
Chris Brandon · 如何使节点在堆栈溢出时中断? 2 年前 |