while-end循环的问题

计算科学 matlab
2021-12-02 06:15:08

这是一段用 Matlab 编写的代码:

while flag==1
    flag = 0;
    disp('end of loop');
end

令人惊讶的是,这不会显示字符串。如果我删除该disp语句,则会出现一个 figure1 窗口。谁能解释为什么?

1个回答

那只是因为flag是matlab中定义的命令。在启动 Matlab 后尝试输入flag,您将看到出现一个非空矩阵。如果您键入help flag,您将看到该功能的含义。

此外,该函数由 Matlab 选择,因为您没有flag在代码之前声明调用的变量。如果您flag=1在代码之前编写,它会按预期工作。

不过,最好的方法是更改​​变量的名称,以免隐藏 Matlab 函数。因此,使用以下代码:

myflag = 1;
while( myflag == 1)
    myflag = 0;
    disp('end of loop');
end