问题标签 [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 投票
6 回答
369 浏览

c++ - c++中的控制流语法

使用以下 c++ 示例(有意省略了缩进)。

什么else是指什么if以及这方面的规则是什么?(是的,我知道使用{ }会解决这个问题)。

0 投票
6 回答
1504 浏览

python - python try/finally 用于流控制

我确信这个概念之前已经出现过,但我找不到一个好的、简单的答案。使用 try/finally 是处理具有多个返回的函数的坏方法吗?例如我有

这似乎比将 update() 命令存储在临时变量中并返回它要好。

0 投票
6 回答
928 浏览

python - 剖析一行(混淆的?)Python

我正在阅读关于 Stack Overflow 的另一个问题(Zen of Python),我在 Jaime Soriano 的回答中遇到了这一行:

在 Python shell 中输入上述内容会打印:

所以当然,我不得不用整个上午的时间来试图理解上面的列表……理解……事情。我不敢断然宣布它被混淆了,但这只是因为我已经编程了一个半月,所以不确定这种结构在 python 中是否司空见惯。

this.s包含上述打印输出的编码版本:

this.d包含一个带有解码密码的字典this.s

据我所知,Jaime 代码中的执行流程是这样的:
1. 循环c for c in this.s为 c 赋值
2. 如果语句的c in this.d计算结果为 True,则“and”语句会执行恰好在其右侧的任何内容,在这种情况下this.d[c]
3. 如果该语句的c in this.d计算结果为 False(这在 Jaime 的代码中从未发生过),“或”语句将执行恰好位于其右侧的任何内容,在本例中为循环c for c in this.s

我对那个流程是否正确?

即使我对执行顺序的看法是正确的,这仍然给我留下了很多问题。为什么 <1> 是第一个执行的,即使它的代码在几个条件语句之后出现在最后一行?换句话说,为什么for循环开始执行并赋值,但实际上只是在代码执行的后期才返回一个值,如果有的话?

此外,对于奖励积分,Zen 文件中关于荷兰语的奇怪行是什么?

编辑:虽然现在说出来让我感到羞耻,但直到三秒钟前,我还以为 Guido van Rossum 是意大利人。在阅读了他的 Wikipedia 文章后,我至少掌握了(如果不是完全理解的话)为什么会有那条线。

0 投票
2 回答
16636 浏览

loops - 如何在 Perl 中从内部循环中断外部循环?

假设我有一段 Perl 代码,例如:

如果something()是真的,我想打破('last')所有循环。

我怎样才能做到这一点?我想到了两个选项,这两个选项我都不喜欢: 使用某些东西GOTO 添加一个将标记something()为 true 的布尔变量,在每个循环恢复之前检查这个 varlast()是否为 true。

有什么建议或想法吗?

谢谢。

0 投票
3 回答
159 浏览

syntax - 简化 if() 语句的语法或构造?

我正在寻找一种语义或语言结构来简化我的一些if陈述。如果我有一个带有 or 的 if 语句,我在两个值之间“选择”,我希望稍后在代码中可以使用该选择的变量。

我会用伪代码写这个:

z的值 在哪里,以触发为真的为准。否则我在写xyif

现在在那个例子中,重复并不多,但在我的实际情况下,每个if块中大约有 6 行代码是相同的重复。所以我写了类似的东西:

但这似乎太迂回了,我怀疑在某个地方,某个大师想出了一个很好的语法来制作一个单行if。在我可以将触发值绑定到后续块中的变量的任何地方,是否有一种语言结构?这个结构应该叫什么?

我工作的实际情况是PHP,所以我意识到PHP可能没有这个能力。

0 投票
1 回答
124 浏览

asp.net - 使用返回控制 ASP.NET 中的流;不呈现页面的其余部分

这个问题应该是相当基本的。我想控制 ASP.NET 页面的流程——如果满足某个条件,我想写出一条错误消息并停止绘制页面。但是,我也希望 ASP.NET 能够输出正确的 HTML(即中间不中断)。现在我正在这样做:

该片段的问题在于 ASP.NET 绘制了定义页面的其余部分,而没有在错误发生后中断。我真的不想制作整个页面Visible = False,然后在某人通过身份验证时撤消它。

有什么好的方法可以做到这一点吗?我已经尝试过Response.End(),但这并没有输出干净的 HTML(或者实际上是任何东西,因为我正在签入Page_Load)。我有过类似的经历Response.Close(),等。

谢谢。

0 投票
1 回答
1090 浏览

gcc - 如何为 C 代码生成控制流图

gcc 编译器是否有现成的库可用?

0 投票
1 回答
382 浏览

c# - ASP.NET HttpServerUtility.Transfer 如何破坏控制流?

我所说的“如何”是指“通过什么机制”而不是“达到什么效果”。调用Server.Transfer ("...");后,控件不会返回到调用方法。在语言运行时级别,这是如何发生的?它会抛出异常或触发中止线程的东西吗?我只是好奇。这种模式的其他例子是什么(调用方法来终止执行)?

0 投票
28 回答
67782 浏览

loops - 为什么使用 for 循环而不是 while 循环?

可能的重复:
使用 for 循环或 while 循环进行迭代?
C 中的循环 - for() 或 while() - 哪个是最好的?

什么时候应该使用for循环而不是while循环?

我认为以下循环是相同的,除了它们的语法。如果是这样,那为什么选择一个而不是另一个?

0 投票
7 回答
5388 浏览

python - equivalent of Python's "with" in Ruby

In Python, the with statement is used to make sure that clean-up code always gets called, regardless of exceptions being thrown or function calls returning. For example:

Here, the file is closed, even though an exception was raised. A better explanation is here.

Is there an equivalent for this construct in Ruby? Or can you code one up, since Ruby has continuations?