问题标签 [if-statement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
21 回答
5230 浏览

language-agnostic - 你如何处理巨大的 if 条件?

这在我使用过的每种语言中都困扰着我,我有一个 if 语句,但是条件部分有很多检查,我必须将它拆分为多行,使用嵌套的 if 语句,或者只是接受它的丑陋并继续前进用我的生命。

您是否发现任何其他方法可能对我和遇到同样问题的其他人有用?

示例,全部在一行:

示例,多行:

示例嵌套:

0 投票
9 回答
62223 浏览

vb.net - IIf() 和 If 之间的性能差异

IIf在 Visual Basic 中,使用函数而不是语句时是否存在性能差异If

0 投票
2 回答
3888 浏览

.net - 如果, IIf() 和 If()

我最近问了一个关于IIf 与 If的问题,发现 VB 中有另一个函数叫做If ,它基本上和IIf做同样的事情,但是是短路的。

这个If函数是否比IIf函数执行得更好?If语句是否胜过IfIIf函数?

0 投票
8 回答
2503 浏览

c# - C# 中类似于 SQL 'in' 关键字的简写条件

在 C# 中是否有一种简写方式来编写:

像:

我知道我也可以使用 switch,但是我必须编写大约 50 个这样的函数(将经典的 ASP 站点移植到 ASP.NET),所以我希望它们尽可能短。

0 投票
31 回答
4104944 浏览

sql - 如何在 SQL SELECT 中执行 IF...THEN?

如何执行IF...THENinSQL SELECT语句?

例如:

0 投票
42 回答
33491 浏览

c - if 语句的格式

这不是一场圣战,这不是“哪个更好”的问题。

对单个语句 if 块使用以下格式的优点是什么。

相对于

如果你格式化你的单个语句 ifs 没有括号或知道一个程序员这样做,是什么导致你/他们首先采用这种风格?我对这给你带来了什么好处特别感兴趣。

更新:由于最受欢迎的答案忽略了实际问题(即使它提出了最理智的建议),这里是无括号专业人士的综述。

  1. 紧凑
  2. 对某些人来说更具可读性
  3. 括号调用范围,在某些情况下具有理论上的开销
0 投票
23 回答
123018 浏览

c++ - 切换 if-else 语句的优势

switch使用语句与使用if语句进行 30 个枚举的最佳实践是什么,unsigned其中大约 10 个具有预期的操作(目前是相同的操作)。需要考虑性能和空间,但并不重要。我已经抽象了这个片段,所以不要因为命名约定而讨厌我。

switch陈述:

if陈述:

0 投票
7 回答
2039 浏览

if-statement - 需要重构 Arrow 反模式的想法

我继承了一个怪物。

它伪装成 .NET 1.1 应用程序处理符合医疗保健索赔支付 (ANSI 835) 标准的文本文件,但它是一个怪物。正在处理的信息涉及医疗保健索赔、EOB 和报销。这些文件由在前几个位置具有标识符的记录和根据该类型记录的规范格式化的数据字段组成。一些记录 ID 是控制段 ID,用于分隔与特定类型事务相关的记录组。

为了处理一个文件,我的小怪物读取第一条记录,确定即将发生的事务类型,然后根据当前正在处理的事务类型开始处理其他记录。为此,它使用嵌套的 if。由于有许多记录类型,因此需要做出许多决定。每个决策都涉及一些处理和 2-3 个其他决策,需要根据之前的决策做出。这意味着嵌套的 if 有很多嵌套。这就是我的问题所在。

这个嵌套的 if 有 715 行长。是的,这是正确的。七百五十条线。我不是代码分析专家,所以我下载了几个免费软件分析工具,得出的 McCabe 循环复杂度等级为 49。他们告诉我这是一个相当高的数字。与亚特兰大地区的花粉计数一样高,其中 100 是高标准,新闻称“今天的花粉计数为 1,523”。这是我有幸看到的箭头反模式最好的例子之一。在其最高处,缩进深度为 15 个制表符。

我的问题是,你会建议用什么方法来重构或重组这样的东西?

我花了一些时间寻找想法,但没有什么能让我站稳脚跟。例如,用保护条件代替级别是一种方法。我只有其中一个。一窝下来,十四走。

也许有一种设计模式可能会有所帮助。指挥链会是解决这个问题的一种方式吗?请记住,它必须保留在 .NET 1.1 中。

感谢您的任何想法。

0 投票
20 回答
106220 浏览

c++ - #ifdef 与 #if - 作为启用/禁用特定代码部分编译的方法,哪个更好/更安全?

这可能是风格问题,但我们的开发团队中存在一些分歧,我想知道是否其他人对此事有任何想法......

基本上,我们有一些在正常开发过程中关闭的调试打印语句。就个人而言,我更喜欢执行以下操作:

不过,一些团队更喜欢以下内容:

...哪种方法听起来更好,为什么?我的感觉是第一个更安全,因为总是有一些定义,并且没有危险它可以破坏其他地方的其他定义。

0 投票
12 回答
18574 浏览

c++ - 优缺点:在条件语句中初始化变量

在 C++ 中,您可以在 if 语句中初始化变量,如下所示:

为什么人们会认为这种不好或好的风格?有什么好处和坏处?

我个人喜欢这种风格,因为它限制了 pThing 变量的范围,所以当它为 NULL 时永远不会被意外使用。但是,我不喜欢你不能这样做:

如果有办法使上述工作,请张贴。但如果那是不可能的,我仍然想知道为什么。

从这里借来的问题,类似的主题,但 PHP。