问题标签 [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.
control-flow - 使用“if/elseif/else”与“if/else{if/else}”
我发现自己经常使用这样的模式:
这里的要点是第二个条件与第一个条件没有明显联系,除非您仔细遵循程序逻辑。这是一件非常糟糕的事情吗?是否最好将上述表述为
出于可维护性的原因?有没有更好的模式我完全错过了?“不明显连接”位似乎是我的代码中更常见的错误来源之一。
perl - Perl If 和 Elsif 循环帮助
好吧,我还是 Perl 的新手,所以这个问题的答案似乎很明显,但是我在 Python 中做了一些工作,并且在学习 if、elsif 和 else 循环时遇到了问题;具体来说,它们不能正常工作。这是我的代码:
也许我的问题现在很明显,但如果不是,问题是它似乎没有评估任何表达式;它只是打印它找到的第一个循环,在这种情况下是 if 循环。如果我删除它,或者注释掉它,它会直接进入第一个 elsif 循环;也就是说,无论 x 的值如何,它都会打印它找到的第一个循环,而无需任何类型的评估。当我添加
我收到警告“在第 16 行的 void 上下文中无用使用数字 gt (>) ”,第 24 行也是如此。我在原始代码中用箭头和此处标记了这些内容。我在做某事/不做我应该做的事吗?
ssis - 尝试创建序列容器时出现问题
我是 SSIS 的新手。我正在使用 BIDS 2005。当我不处于调试模式时,我选择控制流选项卡,转到工具箱并单击序列容器。然后我将它拖到设计表面上。当我拖动时,我的光标显示一个“加号”,好像它会让我创建一个序列容器的新实例。但是,当我松开鼠标按钮时,“加号”消失了,没有序列容器。
真正奇怪的是,我的地表已经有了一个序列容器,而我想做的只是创建第二个。
难道我做错了什么?为什么我无法获取新实例?表面上存在多少个 Sequencer Container 有限制吗?
-- 困惑
computer-science - 程序的控制流程图
我现在正在学习一个编译器类,我们正处于必须构建一个 CFG 以实现优化的地步。我不知道的一件事是一个程序有多少个 CFG?我见过的每个示例似乎都是一个简单代码段的 CGF。因此,如果您有一个具有三个功能的程序。您是否为每个功能有一个单独的 CFG,或者整个程序是否有一个大的 CFG?
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
.
我提供了一个我想出的基本实现;欢迎对这种风格/技术和/或更好的实现发表一般评论!
ruby - Ruby:for 循环和 each 循环有什么区别?
可能重复:
Ruby 中的 for vs each
假设我们有一个数组,比如
sites = %w[stackoverflow stackexchange serverfault]
有什么区别
和
?
对我来说,它们似乎在做同样的事情,for
循环的语法对我来说更清楚。有区别吗?在什么情况下这会很重要?
wpf - WPF 应用程序中的控制流
在 WPF 应用程序中,我有MainWindow : Window
一个加载POSView : UserControl
.
POSView 必须在主窗口加载时自动向用户显示一些数据。
POSView 绑定到其 ViewModel 类属性,而后者又绑定到模型属性。
我正在尝试遵循 MVVM 模式。我的问题是谁应该用数据填充我的模型。
显然是某个类的对象,它监视 MainWindow 或 POSView 事件(以了解它何时已加载并准备好显示数据),此时从远程 WCF 服务(在我的情况下)读取数据并用它填充模型.
谁创建了这个类?
监视 POSView 是否准备好“吃掉数据”的最佳方法是什么?
谢谢你。
python - 为什么这段代码成功后会输出失败信息?
该代码通过对单词列表中的每一行进行散列处理,然后将其与指定的散列进行比较来发挥作用。
我没有收到任何错误,但是当它找到一个哈希时,它会打印出Collision!
消息和The hash given does not correspond to any supplied word in the wordlist
消息,起初我虽然这是一个身份问题,但现在我一无所知。
c++ - 来自 Parasoft C++test 的令人困惑的控制流分析
我们使用Parasoft C++test来静态分析我们的代码。它在使用如下代码时遇到问题:
它在线警告*x;
说:
在任何情况下都不应随后访问已释放的内存
不知何故,可以得出结论,控制流可以传递到catch(...)
块中,删除x
,越过throw;
,然后到达*x;
. 我尝试throw std::exception("");
了其他几个,得到了同样的结果。Parasoft 当然知道异常并将它们合并到其控制流中,因为还有许多其他测试涉及异常检查。在这种情况下只是混淆了,还是实际上有某种方法可以让这个程序的执行同时击中delete x;
and *x;
?
goto - 如何重构此控制流以避免使用 goto?
作为我的入门编程课程的家庭作业,我必须设计和实现一个生成随机数(1-100)的程序,然后给玩家 7 次猜测以正确猜测数字。我想出了这个算法:
但是,我不知道如何将算法的这种概念表示转换为控制结构。(我们使用 Pascal,因此可用的结构是 if 语句、前序循环和后序循环)。前序循环和后序循环都不适合内循环,因为循环条件位于循环中间并且有两个退出点!
谁能给我一个关于如何更清楚地构造它的指针?