2012年1月18日星期三

TJS教學---arithmetic operator,算術運算子

(k ゚∀゚)<電腦本來就是一部計算機,因此運算可以說是程式的基本功能,而我們一般會稱這些提供運算功能的為運算子(operator)。

運算?即是加減乘除等等的東西嗎?>( ゚ω゚ s)

(k ゚∀゚)<這是其中一種運算子,一般會稱為算術運算子(arithmetic operator),用來處理一些算術運算,TJS除了加 ( + )、減( - )、乘( * )、除( / 或 \ )等運算子之外,還有計算餘數的模數運算子( % )。

(k ゚∀゚)<看看以下的範例。

var a=3+2*7;
System.inform(a);










結果顯示的是17嗎?>( ゚ω゚ s)

(k ゚∀゚)<是的,先乘除後加減,括號優先運算等基本運算規則不會改變的,,所以2會先乘以7,之後加以3,結果是17。

(k ゚∀゚)<再看看以下的範例。

var a=3/2;
System.inform(a);










答案是1.5嗎?>( ゚ω゚ s)

(k ゚∀゚)<正確,TJS的除數運算比較像JavaScript,結果會自動轉換成實數,如果大家想要整數的數值,可以使用反斜符號( \ )取代,小數點之後的部份就會被自動消去,以下是範例。

var a=3\2;
System.inform(a);










今次答案是1嗎?>( ゚ω゚ s)

(k ゚∀゚)<計算餘數可以用模數運算子(Modulus operator),不過只限於整數的運算,這個模數運算子的運算優先順序和乘除一樣,以下是範例。

var a=7%3;
System.inform(a);










今次答案又是1嗎?>( ゚ω゚ s)

(k ゚∀゚)<沒錯。

(k ゚∀゚)<我們亦可把變數用來進行運算,看看以下的範例。

var a=2;
a=a*3;
System.inform(a);










(k ゚∀゚)<我們把a*3指定給a,如果原本的a是2,運算後a就是6。

(k ゚∀゚)<加號( + )不單止可以用於數字上,就算是字串也可以加起來,兩個字串會黏在一起,以下是範例。

var a="我是"+"字串";
System.inform(a);










(k ゚∀゚)<在上述的範例裡,字串加起來後,變數a儲存了"我是字串"這句字串。

(k ゚∀゚)<TJS的運算會根據各個運算子的優先順序來執行,當運算優先順序一樣時,吉里吉里就會由左而右進行運算,看看以下的範例。

var a=2+3*7%2+2*(3+5%2);
System.inform(a);










看起來很複雜……>( ゚ω゚ s)

(k ゚∀゚)<括號的優先順序最高,其次是乘( * )、除( / 或 \ )、模數( % ),最後是加 ( + )、減( - )。所以以下是吉里吉里執行時的順序。

a=2+3*7%2+2*(3+5%2)
a=2+3*7%2+2*(3+1)
a=2+3*7%2+2*4
a=2+21%2+2*4
a=2+1+2*4
a=2+1+8
a=3+8
a=11

(k ゚∀゚)<若果大家不確定運算的優先順序,其實可以使用括號來確保優先順序,因為順序不同會得到不同結果,所以必須小心留意。

(k ゚∀゚)<好吧,今次介紹到這裡,下次再見。

沒有留言:

發佈留言