2013-01-12 191 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