我正在攻读我明天的累积考试,我在以前的考试中得到了以下错误的问题。我希望有人可以向我解释这个问题?什么(~m)是什么意思?
问题是:
执行以下脚本后,m的值是多少?
a=1; b=2; m=0;
if (~m)
m = m+1;
if (a-b > 0)
m = m+1;
else
m = m -1;
end
elseif (m > 1)
m = m + 2;
else
m = m - 2;
end
正确的答案是0,但为什么?我猜想m = -2
答案 0 :(得分:9)
~
表示NOT
。但是,数值均被视为TRUE
,除非它们与0
完全相同。
因此,该逻辑实际执行的命令是:
m = m+1; %Following if (~m)
m = m-1; $Following else
此外,代码中还有一个嵌套的if
语句。如果您使用多级缩进,则会更容易阅读。