(k ゚∀゚)<TJS提供了一些叫比較運算子(或者是關係運算子,relational operator)的運算子,用來比較兩者的值,以下是一些比較運算子。
運算子 | 用途 | 例子(a=1,b=1.2,c=1.0) |
---|---|---|
== | 等於 | a==c是1 |
!= | 不等於 | a!=b是1 |
> | 大於 | a>b是0 |
< | 小於 | a<b是1 |
>= | 大於或等於 | a>=b是0 |
<= | 小於或等於 | a<=b是1 |
=== | 等於(包括資料型態) | a===c是0 |
!== | 不等於(包括資料型態) | a!==c是1 |
為什麼結果是0或1,不是true或false嗎?>( ゚ω゚ s)
(k ゚∀゚)<在吉里吉里的條件式裡,所有非零的數值都被視為true,而零就被視為false。實際上KAG也有相同的概念。
不過我在KAG時明明有用過true和false,那TJS怎麼會沒有true和false?>( ゚ω゚ s)
(k ゚∀゚)<雖然吉里吉里裡的確有true和false這兩個字,不過說到底它們也只是數值為1和0的常數,true的值是1,false的值是0。
(k ゚∀゚)<看看以下關於比較運算子的範例。
var a=1<2;
System.inform(a);
System.inform(a);
(k ゚∀゚)<由於1<2這句是成立,1<2會傳回1,即是true,所以吉里吉里將顯示1。
(k ゚∀゚)<另外不要跟一個等號"="的指定運算子混淆,兩個等於符號(==)的是比較運算子,若果寫上a==1是比較a是否等於1,而a=1是把1這個值指定給變數a。
我有一個問題,到底兩個等於(==)和三個等於(===)有什麼分別,大家都不是"等於"嗎?>( ゚ω゚ s)
(k ゚∀゚)<兩個等於(==)是比較兩者數值上是否相同,而三個等於(===)除了比較數值之外,還會比較兩者的資料型態,例如1和1.0雖然數值上一樣,不過一個是整數,另一個是實數,所以用三個等於(===)來比較的話,將會得到false。
(k ゚∀゚)<再看看以下的範例。
var a=(int)System.inputString("","請輸入一個整數","");;
var b=(a<12)+1;
System.inform(b);
var b=(a<12)+1;
System.inform(b);
(k ゚∀゚)<當a小於12時,a<12就會傳回1,否則就是傳回0。以下是表格寫了不同情況下a和b的值。
情況1 | 情況2 | |
---|---|---|
a | 10 | 15 |
a<12 | 1 | 0 |
(a<12)+1 | 2 | 1 |
b | 2 | 1 |
(k ゚∀゚)<今次介紹到這裡,下次再見。
沒有留言:
發佈留言