【发布时间】:2016-08-11 17:05:22
【问题描述】:
我已经设置好了:
for i=1:10
if (condition1)
elseif (condition2)
(do something)
else
(do something)
end
end
对于condition1,如果满足条件,我不希望发生任何事情,我只想使用下一个值i 再次运行循环。我该怎么做?我可以在if 语句下方将其留空,还是有更优雅的方法来做到这一点?如果我删除第一个if 语句,如果没有满足其他条件,循环期间会发生什么?
如果可能的话,我想避免运行第一个if 语句,因为我的问题具有最高的复杂性。检查condition1 是很重要的,因为如果满足,那么我想移动到i 的下一个值。我希望这个问题有意义。
【问题讨论】:
-
我认为留下一个空的 if 是完全可以的。我会在里面添加一个注释,解释在这种情况下什么都不需要做,所以当你一段时间后回到代码时,你不会想知道为什么会有一个空的 if。
-
Stewie Griffin 的回答解释了为什么删除第一个条件是不好的(这会导致不良行为)。我是说把它留空(或者更好的评论)很好
-
就我个人而言,我喜欢将一行留空的方法,只有一条评论说什么都不做。这仅适用于循环中有更多代码,位于 if 语句下方并且此代码应始终运行的情况。如果我想强调我想进入下一个迭代,我会继续。如果代码很复杂,那么跳过东西不是最好的方法。最好把代码分成函数。这将使每个功能更短且更易于概览。良好的命名将使用户无需深入每个子功能即可阅读代码。
标签: matlab loops if-statement