这个while循环如何被打破?

时间:2017-04-03 02:19:19

标签: matlab

counter = [2 3 3 4 5];
while counter(1:5)~=zeros(1,5)
    counter(1)=0;
end
counter

我知道这是一个愚蠢的代码,但我不明白这个while循环是如何被破坏的。我希望循环存在,直到所有计数器变为0,即)counter = [0 0 0 0 0],而不仅仅是其中一个。

有人可以告诉为什么这个循环会被破坏并写入具有我初衷的循环吗?

1 个答案:

答案 0 :(得分:0)

这一行

counter(1) = 0;

是一个问题。您只需更改counter的一个元素。你需要在你的循环中添加一些能够将counter的任何/所有元素设置为零的代码,或者你最终会得到一个无限循环。

此外,您需要将counter(1:5)~=zeros(1,5)更改为any(counter(1:5)~=zeros(1,5)),因为TroyHaskin已经评论过,因此它会一直运行,直到counter的所有元素都为零。