2013-01-12 188 views
0

我試圖做一個簡單的語句用Matlab如下:條件if/else語句

if TF==1 
    disp('One'), break 
else continue 
end 
... ... ... 
... ... ... 

但即使TF不爲1,當我運行該命令時,它不會繼續腳本的其餘部分!任何幫助將不勝感激 - 謝謝

+0

不需要那個'else continue',只需刪除那一行。 – us2012

+0

這是'如果'內循環? continue語句實際上會放棄當前的迭代並開始新的迭代。它不會在代碼行出現之後繼續執行。Break將退出循環。 –

回答

3

continue聲明有一個非常不同的含義。在循環內,如forwhile循環,continue指示跳過當前循環,繼續循環中的下一次迭代。所以如果你刪除continue,你會看到你期待的行爲。下面是一個例子:

for k = 1 : 10 
    if k == 4 
    % skip the calculation in the case where k is 4 
    continue 
    end 
    area = k * k; 
    disp(area); 
end 

k == 4循環迭代,塊計算相應方的區域被跳過。這個特殊的例子不是很實際。

但是,想象一下你有一個十個文件名的列表,並且你想在這個循環中處理每個文件「for k = 1 : 10」。您將不得不嘗試打開每個文件,但如果您發現該文件不存在,則處理該文件的適當方法是打印一些警告,然後將continue添加到下一個文件。

+0

和'break'也打算在循環中使用:它完全退出循環。 – catchmeifyoutry

+0

非常感謝,我誤解了'繼續' – ToNoY