OR gives invalid results
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
Please see the attached picture.
Its very simple but i dont get the correct results.Can anyone clarify why it outputs 12 instead of 22?
1 件のコメント
Stephen23
2022 年 3 月 21 日
編集済み: Stephen23
2022 年 3 月 21 日
"OR gives invalid results"
Actually OR gives exactly the expected result.
"Can anyone clarify why it outputs 12 instead of 22?"
Following the rules of precedence given here:
we can see that EQ has a higher precedence than short-circuiting ||, so your code
left == 1 || 3
is equivalent to:
(left == 1) || 3
which will always be TRUE because 3 is non-zero and so is considered TRUE.
"Its very simple but i dont get the correct results"
Yet MATLAB is just doing exactly what you told it to do. You need to pay attention to the operator precedence!
採用された回答
Torsten
2022 年 3 月 21 日
if left == 1 || left == 3
...
The condition "3" is empty and thus true. MATLAB does not relate the "3" to "left".
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!