2015-10-20 62 views
0

我有一个迭代问题,我想用for -loop来解决。但是,一旦我的条件得到满足,我想从for -loop中突破。我有一个if -statement来检查我的病情是否满意。
if -statement从来没有捕捉到它应该的条件。
这是我的代码简化的例子。 if -statement与我的代码完全相同,但简化了for -loop和delta_Q用if语句退出for-loop

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 
+0

@Ander Biguri这里的代码是 – Tonsy

+1

'如果0.01 0.01' – rayryeng

+0

@rayryeng我试过但仍然:( – Tonsy

回答

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

因此,如果您更改条件:

-0.01 < delta_Q && delta_Q < 0.01 

你会得到想要的行为。


所有这些都可以在simple debugging steps找到。