How to use for loop and if else condition for multiple conditions
3 次查看(过去 30 天)
显示 更早的评论
I am writing a code for Pass/Fail criteria for a application in which if two given conditions are satisfied then it will be pass or it will fail. but I am getting error as,
'Operands to the || and && operators must be convertible to logical scalar values.'
suggest me correction in my code
Thank u in advance!!
for system = 1
if ((A == 45) && (0.8 < B < 1.2))
display('system function - PASS');
else
display('system function - FAIL');
end
end
0 个评论
采纳的回答
John D'Errico
2020-3-25
编辑:John D'Errico
2020-3-25
First, you don'r need a for loop that runs over system, sine you re just assigning it one value! That is, this:
for system = 1
is silly and unecessary. Just write
system = 1;
(removing the now spurious end that went with the for, of course.)
Next, the if is written incorrectly, as MATLAB told you. Just because it is common mathematical shorthand to write this:
(0.8 < B < 1.2)
does not make it work as you wish in MATLAB. Split it into two tests, which is what the shorthand implies anyway.
if ((A == 45) && (0.8 < B) && (B < 1.2))
Finally, what was the immediate reason why your code failed in the first place?
'Operands to the || and && operators must be convertible to logical scalar values.'
That tells you either A or B, or both of them, were not scalar variables. You cannot have an if statement that loops over a vector or array. That is, an if statement is not an implied loop.
I would also STRONGLY recommend that you read the getting started tutorials. If you have made 3 basic mistakes in your first 3 lines of code, this tells me you never bothered to read any documentation. READ THE MANUAL. It was put there to get you started.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!