-3
我想用t
来计算s
,但我的代码抱怨变量s
未定义。这是为什么发生?为什么我的if语句的行为不如预期
下面是代码:
a=1;
b=2;
t=input('输入');
if (-100<t<0)
T=t+100
c1=20
s=T*t
end
fprintf('输出%f\n',s)
我想用t
来计算s
,但我的代码抱怨变量s
未定义。这是为什么发生?为什么我的if语句的行为不如预期
下面是代码:
a=1;
b=2;
t=input('输入');
if (-100<t<0)
T=t+100
c1=20
s=T*t
end
fprintf('输出%f\n',s)
因为你if
块的内容绝对不会执行你得到一个错误(和s
如果执行if
块的contenst只被定义)。这是由于评估逻辑表达式-100 < t < 0
的方式所致。而不是检查如果t
是-100
和0
之间,它是下列
(-100 < t) < 0;
这是永远不会以评估true
因为-100 < t
等效可以是true
(1)或false
(0)但既1
和0
是不< 0
要检查t
范围为(-100, 0)
,您将改为将条件拆分为两部分,并将它们与逻辑and
(&&
)结合使用。
if t > -100 && t < 0
而且,你要确保设置s
一些默认值,这样,如果t
在指定范围之外,你不会得到你所看到
s = NaN;
if t > -100 && t < 0
T = t + 100;
c1 = 20;
s = T * t;
end
错误
's'似乎是'if'语句的本地语言。 – Carcigenicate
因为's'超出了范围? 's'在if语句中定义,不能在外部访问。在if语句之外定义它。 – Li357
我已经做了,但是如果我设置s = 1,那么我输入t = -10,在这个代码中,s应该等于T * t,但是我每次都得到s = 1,不管哪个数字t是 – karl