2012年2月8日星期三

TJS教學---conditional operator,條件運算子

(k ゚∀゚)<在這篇開始之前,大家必須什麼是條件式。

我已經懂得如何寫條件式,例如5<2是條件式,它會傳回0,即是false,我說得對不對?>( ゚ω゚ s)

(k ゚∀゚)<是的,今次我們利用條件式來做條件判斷,TJS有多種方式來做條件判斷,其中一個是運用條件運算子(conditional operator)。以下是條件運算子的使用方式。

條件式 ? 成立時傳回的值 : 不成立時傳回的值

這個運算子是真特別,竟然有三段。>( ゚ω゚ s)

(k ゚∀゚)<嗯,條件運算子的第一段是條件式,之後會根據條件式是true或false來決定傳回哪個值,當條件式是true時,條件運算子將會傳回第二段的值,否則傳回第三段的值。

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

var x=3;
x= x>=0?x:-x;
System.inform(x);










(k ゚∀゚)<在上述的範例裡,條件運算子會檢查條件式,由於x的值是3,x>=0將會傳回1,即是true,所以條件運算子傳回第二段的值,即是x的值。

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

var x=-3;
x= x>=0?x:-x;
System.inform(x);










(k ゚∀゚)<這次x的值是-3,x>=0將會傳回0,即是false,所以條件運算子傳回第三段的值,即是-x的值。

var x=3;
var message= x%2==0 ? x+"是偶數" : x+"是奇數";
System.inform(message);










(k ゚∀゚)<上述的範例其實經常會用到,我們不時會檢查一個值是否可以被某個整數整除,當條件式傳回1的時候,就代表可以被整除,例如當x%2==0傳回1的時候,就代表x可以被2整除。

原來如此。>( ゚ω゚ s)

(k ゚∀゚)<事實上這範例不一定要用到比較運算子,因為我們知道條件式是以0來代表false,所以可以簡化成以下的模樣。

var x=3;
var message= x%2 ? x+"是奇數" : x+"是偶數";
System.inform(message);










那麼如果只要條件式的結果是false,就代表可以被整除?>( ゚ω゚ s)

(k ゚∀゚)<是的,當條件式傳回0,代表false,條件運算子傳回第三段的值,否則就傳回第二段的值。

(k ゚∀゚)<大致上介紹得差不多,下次再見吧!

沒有留言:

發佈留言