【发布时间】:2012-04-23 13:32:43
【问题描述】:
为了更好地了解过程编程,无论是用于实际用途还是学术用途,我都试图阐明 CONTINUE 和 BREAK 语句对状态的影响。
我开始明白 GOTO 基本上是被禁止的,因为如果你是一个优秀的程序员,你可以找到更好的方法。但是我也更深层次地理解,在过程式编程中应该避免它,因为它缺乏改变状态的能力。
这是我弄糊涂了,怎么 CONTINUE 和 BREAK 可以改变状态?
我最初的想法是因为 GOTO 是这样的:
GOTO A;
LBL A;
不计算表达式,也不改变状态。并结合CONTINUE的形式:
while (evalFunction(*value) == 1) {
..
if ( bail == 1 ) continue;
..
}
具有在while条件下改变状态的能力。
但这并不代表 BREAK。
有人可以提供有关过程编程的细节的更多细节吗?
【问题讨论】:
-
while 条件下“继续”如何改变状态? “break”会改变状态,因为条件根本不会被测试,这与改变条件的输出是一样的——至少在条件有副作用的情况下。否则,除了循环终止之外,不会更改任何状态。不过,我可能误解了您的要求。
-
我对循环进行了编辑,继续可以通过调用条件中的函数来改变状态。老实说,我可能只是抓住了一些本应更像是“这是避免 GOTO 的众多原因中的另一个”。
标签: c controls state flow procedural-programming