MATLAB 'continue' 命令替代
MATLAB 'continue' command alternative
for i = 1:30
if condition1
statement1
elseif condition2
continue
else
statement2
end
statement3
end
如上所述,如果满足条件 2,我在 for 循环中使用 'continue' 命令跳过 'statement3'。此代码运行良好。
但是当我为了测试目的必须 运行 if-else 部分时,它会出错,因为 'continue' 应该是 运行 在 for/while 循环中。
有没有办法在 for 循环中做同样的事情(什么都不做并跳到下一次迭代)但又可以单独工作?
首先,你写的是你想要的。例如检查此代码:
for i = 1:7
if i<=2
disp([num2str(i) ' statement1'])
elseif i>=4 && i<=6
disp([num2str(i) ' only continue here'])
continue
else
disp([num2str(i) ' statement2'])
end
disp([num2str(i) ' statement3']);
end
disp('yeah')
>>
1 statement1
1 statement3
2 statement1
2 statement3
3 statement2
3 statement3
4 only continue here
5 only continue here
6 only continue here
7 statement2
7 statement3
yeah
其次,你也可以这样做
for i=1:30
if condition1
statement1
statement3
elseif condition2
continue
else
statement2
statement3
end
end
如果你想运行循环外的完全相同的代码,因此不能使用continue
,你可以简单地重写如下:
if ~condition2
if condition1
statement1
else
statement2
end
statement3
end
或者(我知道这不是很优雅,但确实有效):
if condition1
statement1
statement3
elseif condition2
else
statement2
statement3
end
上面的代码可以改进(很多)重写如下:
if condition1
statement1
statement3
elseif ~condition2
statement2
statement3
end
最后,如果你的statement3
特别长,不想重复两次,你可以使用旁路标志进一步改进上面的代码:
go3 = false;
if condition1
statement1
go3 = true;
elseif ~condition2
statement2
go3 = true;
end
if go3
statement3
end
问题是抽象的条件不允许我充分发挥我的想象力。也许如果您指定您正在使用的条件,即使是简化的方式,我也可以尝试提出更好的解决方案。
for i = 1:30
if condition1
statement1
elseif condition2
continue
else
statement2
end
statement3
end
如上所述,如果满足条件 2,我在 for 循环中使用 'continue' 命令跳过 'statement3'。此代码运行良好。 但是当我为了测试目的必须 运行 if-else 部分时,它会出错,因为 'continue' 应该是 运行 在 for/while 循环中。
有没有办法在 for 循环中做同样的事情(什么都不做并跳到下一次迭代)但又可以单独工作?
首先,你写的是你想要的。例如检查此代码:
for i = 1:7
if i<=2
disp([num2str(i) ' statement1'])
elseif i>=4 && i<=6
disp([num2str(i) ' only continue here'])
continue
else
disp([num2str(i) ' statement2'])
end
disp([num2str(i) ' statement3']);
end
disp('yeah')
>>
1 statement1
1 statement3
2 statement1
2 statement3
3 statement2
3 statement3
4 only continue here
5 only continue here
6 only continue here
7 statement2
7 statement3
yeah
其次,你也可以这样做
for i=1:30
if condition1
statement1
statement3
elseif condition2
continue
else
statement2
statement3
end
end
如果你想运行循环外的完全相同的代码,因此不能使用continue
,你可以简单地重写如下:
if ~condition2
if condition1
statement1
else
statement2
end
statement3
end
或者(我知道这不是很优雅,但确实有效):
if condition1
statement1
statement3
elseif condition2
else
statement2
statement3
end
上面的代码可以改进(很多)重写如下:
if condition1
statement1
statement3
elseif ~condition2
statement2
statement3
end
最后,如果你的statement3
特别长,不想重复两次,你可以使用旁路标志进一步改进上面的代码:
go3 = false;
if condition1
statement1
go3 = true;
elseif ~condition2
statement2
go3 = true;
end
if go3
statement3
end
问题是抽象的条件不允许我充分发挥我的想象力。也许如果您指定您正在使用的条件,即使是简化的方式,我也可以尝试提出更好的解决方案。