我正在用Karel写一个程序,它基本上是Pascal加上Fanuc机器人的运动命令。我的代码工作正常,包括使用for循环遍历它200次。
现在,我想添加一个排除列表,因此,除非我在排除列表上,否则请用伪代码“”将I=1添加到200“
列表是:“exclude5 of integer”我的代码是:
for I=1 to 200 DO
FOR j =1 TO 5 DO
IF exclude[j]=i THEN
GO TO end_it
ENDFOR
bunch of code
endit::
ENDFOR
现在我知道为什么我得到一个堆栈溢出,我跳出了for循环。然而,我想不出一个办法来解决我的问题。我可以单独检查数组的5个成员,但我尽量保持代码简短,特别是因为我有第二个(第三个) for循环,我必须再次添加相同的内容。
任何帮助都将不胜感激!
发布于 2020-02-25 06:24:47
汤姆说的“去”是对的。应该不惜一切代价避免这种情况。
如果我理解正确的话...这是一个简单的解决方案,但真的不是很优雅:
FOR i=1 to 200 DO
FOR j =1 TO 5 DO
IF exclude[j]=i THEN
-- DO nothing, but if you want to break here just set j= 5
ELSE
-- DO a bunch of things here
ENDIF
ENDFOR
ENDFOR
https://stackoverflow.com/questions/56262310
复制相似问题