for 循环中的 If 语句无法正常工作 - MATLAB

If statements in for loop don't work correctly - MATLAB

for h=0:39
if h<10
    disp('primi 10')
elseif 10<=h<20
    disp('primi 20')        
elseif 20<=h<30
    disp('primi 30')
elseif 30<=h<40
    disp('primi 40')
end
end

上面的简单代码是我在 MATLAB 中尝试 运行 的代码,但作为输出我得到了一些奇怪的东西,例如:

primi 10
primi 10
primi 10
primi 10
primi 10
%first 10 senteces are corrected
...
primi 10
primi 20
primi 20
primi 20
.....
%until the end of the loop

所以好像matlab没有退出

elseif 10<=h<20 disp('primi 20')

声明。 事实上,前 20 次迭代得到了纠正,而其他的则没有。 我真的不知道如何纠正它。 有什么建议吗?

您应该将“单一”条件与逻辑运算符结合起来,例如“elseif 10<=h && h<20”。 在您的情况下,编译器首先看到 10<=h 并将其解析为 True,然后继续比较 True<20,这也是 True,因此所有内容都打印为 20.