【发布时间】:2015-09-03 11:08:15
【问题描述】:
在 perl 上编程,我们可以使用一个名为“redo”的智能函数——我们可以回到循环的开头,而无需查看条件。例如,当我们创建一个必须在其中设置预期值/字符(例如“a-b-c”,仅此而已)的表时,它很有用。 我想问一下这样的C++函数中是否存在。非常感谢您的帮助。
【问题讨论】:
-
我无法想象一个用例无法使用通常的构造(
if、while等)提供服务。请提供一个最小的例子 -
例如:我们有一个要填充特定字符的数组(只有“a”或“b”)。如果我们在写入不正确的值后不使用“goto”,则将重新检查条件(或者......我不知道更好的选择)。结果 - 我们的计数器会增加(而不是再次写 tab[i],之前写得很糟糕,我们会写 tab[i+1])
-
while循环有什么问题?如char x=0; while(is_wrong(x=obtain())); table[i]=x; -
我们也可以这样做,但是在这种情况下使用'goto'不是更直观吗? (知道这个命令通常不推荐)
-
goto是从不直观的,因为标签和goto语句通常在结构上不相关。对于do,总是有一个while,一个关联的执行块和一个条件。