问题标签 [control-flow]

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 投票
5 回答
515 浏览

control-flow - 使用“if/elseif/else”与“if/else{if/else}”

我发现自己经常使用这样的模式:

这里的要点是第二个条件与第一个条件没有明显联系,除非您仔细遵循程序逻辑。这是一件非常糟糕的事情吗?是否最好将上述表述为

出于可维护性的原因?有没有更好的模式我完全错过了?“不明显连接”位似乎是我的代码中更常见的错误来源之一。

0 投票
2 回答
4126 浏览

perl - Perl If 和 Elsif 循环帮助

好吧,我还是 Perl 的新手,所以这个问题的答案似乎很明显,但是我在 Python 中做了一些工作,并且在学习 if、elsif 和 else 循环时遇到了问题;具体来说,它们不能正常工作。这是我的代码:

也许我的问题现在很明显,但如果不是,问题是它似乎没有评估任何表达式;它只是打印它找到的第一个循环,在这种情况下是 if 循环。如果我删除它,或者注释掉它,它会直接进入第一个 elsif 循环;也就是说,无论 x 的值如何,它都会打印它找到的第一个循环,而无需任何类型的评估。当我添加

我收到警告“在第 16 行的 void 上下文中无用使用数字 gt (>) ”,第 24 行也是如此。我在原始代码中用箭头和此处标记了这些内容。我在做某事/不做我应该做的事吗?

0 投票
1 回答
808 浏览

ssis - 尝试创建序列容器时出现问题

我是 SSIS 的新手。我正在使用 BIDS 2005。当我不处于调试模式时,我选择控制流选项卡,转到工具箱并单击序列容器。然后我将它拖到设计表面上。当我拖动时,我的光标显示一个“加号”,好像它会让我创建一个序列容器的新实例。但是,当我松开鼠标按钮时,“加号”消失了,没有序列容器。

真正奇怪的是,我的地表已经有了一个序列容器,而我想做的只是创建第二个。

难道我做错了什么?为什么我无法获取新实例?表面上存在多少个 Sequencer Container 有限制吗?

-- 困惑

0 投票
2 回答
3750 浏览

computer-science - 程序的控制流程图

我现在正在学习一个编译器类,我们正处于必须构建一个 CFG 以实现优化的地步。我不知道的一件事是一个程序有多少个 CFG?我见过的每个示例似乎都是一个简单代码段的 CGF。因此,如果您有一个具有三个功能的程序。您是否为每个功能有一个单独的 CFG,或者整个程序是否有一个大的 CFG?

0 投票
3 回答
3151 浏览

scala - 在 Scala 中实现 ifTrue、ifFalse、ifSome、ifNone 等以避免 if(...) 和简单的模式匹配

在 Scala 中,我逐渐失去了 Java/C 以面向控制流的方式思考的习惯,并习惯于先获取我感兴趣的对象,然后通常应用诸如 amatch或 amap()foreach()for之类的东西收藏品。我非常喜欢它,因为它现在感觉像是一种更自然、更直接的方式来构建我的代码。

渐渐地,我希望我能以同样的方式为条件编程;即,首先获得一个布尔值,然后match它来做各种事情。match然而,对于这项任务来说,一个成熟的 .

比较:

与我用更接近 Java 的风格编写的内容相比:

然后我想起了 SmalltalkifTrue:ifFalse:消息(及其变体)。是否有可能在 Scala 中编写这样的东西?

有变体:

此外,这种风格是否可以用于简单的两种状态类型,例如Option?我知道更惯用的使用方式Option是将其视为一个集合并在其上调用filter(), map(),exists()但通常,最后,我发现如果定义了它,我想执行一些doX,如果没有定义,则执行一些doY。就像是:

对我来说,这(仍然?)看起来比成熟的match.

我提供了一个我想出的基本实现;欢迎对这种风格/技术和/或更好的实现发表一般评论!

0 投票
4 回答
4755 浏览

ruby - Ruby:for 循环和 each 循环有什么区别?

可能重复:
Ruby 中的 for vs each

假设我们有一个数组,比如

sites = %w[stackoverflow stackexchange serverfault]

有什么区别

?

对我来说,它们似乎在做同样的事情,for循环的语法对我来说更清楚。有区别吗?在什么情况下这会很重要?

0 投票
1 回答
596 浏览

wpf - WPF 应用程序中的控制流

在 WPF 应用程序中,我有MainWindow : Window一个加载POSView : UserControl.

POSView 必须在主窗口加载时自动向用户显示一些数据。

POSView 绑定到其 ViewModel 类属性,而后者又绑定到模型属性。

我正在尝试遵循 MVVM 模式。我的问题是谁应该用数据填充我的模型。

显然是某个类的对象,它监视 MainWindow 或 POSView 事件(以了解它何时已加载并准备好显示数据),此时从远程 WCF 服务(在我的情况下)读取数据并用它填充模型.

谁创建了这个类?

监视 POSView 是否准备好“吃掉数据”的最佳方法是什么?

谢谢你。

0 投票
2 回答
84 浏览

python - 为什么这段代码成功后会输出失败信息?

该代码通过对单词列表中的每一行进行散列处理,然后将其与指定的散列进行比较来发挥作用。

我没有收到任何错误,但是当它找到一个哈希时,它会打印出Collision!消息和The hash given does not correspond to any supplied word in the wordlist消息,起初我虽然这是一个身份问题,但现在我一无所知。

0 投票
3 回答
1018 浏览

c++ - 来自 Parasoft C++test 的令人困惑的控制流分析

我们使用Parasoft C++test来静态分析我们的代码。它在使用如下代码时遇到问题:

它在线警告*x;说:

在任何情况下都不应随后访问已释放的内存

不知何故,可以得出结论,控制流可以传递到catch(...)块中,删除x,越过throw;,然后到达*x;. 我尝试throw std::exception("");了其他几个,得到了同样的结果。Parasoft 当然知道异常并将它们合并到其控制流中,因为还有许多其他测试涉及异常检查。在这种情况下只是混淆了,还是实际上有某种方法可以让这个程序的执行同时击中delete x;and *x;

0 投票
3 回答
1135 浏览

goto - 如何重构此控制流以避免使用 goto?

作为我的入门编程课程的家庭作业,我必须设计和实现一个生成随机数(1-100)的程序,然后给玩家 7 次猜测以正确猜测数字。我想出了这个算法:

控制流

但是,我不知道如何将算法的这种概念表示转换为控制结构。(我们使用 Pascal,因此可用的结构是 if 语句、前序循环和后序循环)。前序循环和后序循环都不适合内循环,因为循环条件位于循环中间并且有两个退出点!

谁能给我一个关于如何更清楚地构造它的指针?