使用if语句退出for循环

时间:2015-10-20 19:00:26

标签: matlab loops for-loop exit

我有一个迭代问题,我想用for - 循环来解决。但是,一旦我的条件得到满足,我想摆脱for - 循环。我有if - 声明来检查我的状况是否满意 但if - 陈述从未捕捉到它应该达到的条件 这是我的代码的简化示例。 if - 语句与我的代码完全相同,但for - 循环和delta_Q被简化了。

for ii=1:1000
    delta_Q = rand(1)*10-5
    if 0.01 < delta_Q < -0,01
        disp(['delta_Q too small, last index:', num2str(ii)])
        break
    end
end

1 个答案:

答案 0 :(得分:0)

作为rayryeng pointed out,代码中的这一行不符合您的想法:

0.01 < delta_Q < -0,01
  1. 布尔条件需要分开
  2. -0,01-0.01不同,而是01
  3. 但是:

    0.01 < delta_Q && delta_Q < -0.01
    

    没有意义,因为您不能同时大于0.01且小于-0.01

  4. 因此,如果您将条件更改为:

    -0.01 < delta_Q && delta_Q < 0.01
    

    你得到了理想的行为。

    所有这一切都可以通过simple debugging steps找到。