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.
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.