我在while
语句中有一个else
循环。虽然while
循环中的条件为真,但变量k
递减(k=k-1
)。我希望while
循环在k==0
之前停止。我已经尝试将while
循环置于另一个while
循环(while k>1
)中,可能会在k
降为1
时取消内循环。有什么想法吗?
if yada yada
do thing1
else
while k>1
while x==true
k=k-1;
do thing2
end
end
end
答案 0 :(得分:3)
这不是诀窍吗?
message
答案 1 :(得分:0)
你可以将这句话添加到最里面的while
if k <= 1
break;
答案 2 :(得分:0)
由于你的while
循环基本上实现了反增量,我强烈建议用for
循环替换它(实际上,它们都是)。除了更具可读性之外,它还允许Matlab应用优化,这将导致更快的执行时间。见这里:
yadayada = false;
x = true;
if yadayada
else
kmax = 5; % or whichever maximum value you want k to have
for k = kmax:-1:2 % have k start at kmax, decrement by 1 each time, until k==2
fprintf('k = %d\n', k);
% do something useful in the loop
if ~x
break;
end
end
end
输出:
k = 5
k = 4
k = 3
k = 2