-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