“继续”指令的好处

Benefits of the "Continue" instruction

提问人:fadam 提问时间:11/17/2023 更新时间:11/18/2023 访问量:30

问:

我正在开发,在搜索过程中,我再次发现了“继续”指令,但我从未理解过该指令的兴趣。

如果我们以倍福文档中的例子为例 (https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/2528318603.html&id=):

enter image description here

在这种情况下,我们可以做:

如果 nInt1 <> 0 则

nVar1:=nVar1/nInt1;

END_IF

我的印象是,在所有情况下,都可以使用 IF 而不是 Continue。

我想知道您是否有反例或继续指令在编写循环时具有真正优势的情况。

自动化 twincat codesys

评论


答:

4赞 Fred 11/18/2023 #1

总有一种方法可以在不使用 .在许多情况下,它可以只用一个 IF 模块来完成,但有时它有点复杂,例如,如果在循环内的模块中使用。CONTINUECONTINUEIFFOR

归根结底,这是一个偏好问题。我经常在避免为后面的代码创建缩进级别的情况下使用。有些人可能讨厌 CONTINUE,因为“被认为是有害的”(与 不同,它不允许跳转到任意代码位置)。CONTINUEGOTOCONTINUEGOTO

在某些情况下,可能会节省一些 CPU 周期,但这种情况可以忽略不计,以至于没有实际问题或理由。CONTINUE

因此,总而言之,当它生成更容易理解的代码时,它有一个优势,这是主观的,所以由你来决定。CONTINUE

评论

1赞 chrisbeardy 11/18/2023
我想补充一点,如果 IF 语句,CONTINUE 通常允许循环中的其余代码不嵌套在里面,有点像 RETURN 从函数早期返回。哪个 IMO 导致代码更易于阅读。正如弗雷德所说,这是主观的。
0赞 Fred 11/18/2023
同意循环的其余部分不必嵌套在 IF 块中,这就是我所说的“避免缩进级别”的意思。在循环中做的第一件事是检查迭代是否需要做某事(例如,因为使用循环的索引读取数组元素的状态)是很常见的,因此经常会出现“IF ?然后继续;END_IF“单行字,对我来说更干净。