ActionScript 3.0 提供三個基本的條件陳述式,可讓您用來控制程式流程。
if..else
if..else
條件陳述式可讓您測試條件,並在該條件成立時執行程式碼區塊,或是在條件不成立時,執行另一個程式碼區塊。例如,下列程式碼會測試
x
的值是否超過 20。如果超過就產生一個
trace()
函數;否則就產生另外一個
trace()
函數:
if (x > 20)
{
trace("x is > 20");
}
else
{
trace("x is <= 20");
}
如果不要執行另一個程式碼區塊,則可以只用
if
陳述式,而不使用
else
陳述式。
if..else if
您可以使用
if..else if
條件陳述式來測試一個以上的條件。例如,下列程式碼不僅會測試
x
的值是否超過 20,也會測試
x
的值是否為負數:
if (x > 20)
{
trace("x is > 20");
}
else if (x < 0)
{
trace("x is negative");
}
如果
if
或
else
陳述式後面只跟著一個陳述式,該陳述式便不需要用大括號括住。例如,下列程式碼就不使用大括號:
if (x > 0)
trace("x is positive");
else if (x < 0)
trace("x is negative");
else
trace("x is 0");
但是,Adobe 建議您永遠都使用大括號,因為如果後來陳述式加入至沒有大括號的條件陳述式,可能會產生未預期的行為。例如,在下列程式碼中,不管條件是否評估為
true
,
positiveNums
的值都會加 1:
var x:int;
var positiveNums:int = 0;
if (x > 0)
trace("x is positive");
positiveNums++;
trace(positiveNums); // 1
switch
如果您有多個執行路徑均相依於相同的條件運算式,
switch
陳述式就很有用。它提供的功能類似於一段很長的
if..else if
陳述式,但比較容易閱讀。
switch
陳述式不會測試 Boolean 值的條件,而是會評估運算式,然後使用結果決定要執行的程式碼區塊。以
case
陳述式開頭,而以
break
陳述式結尾的程式碼區塊。例如,下列
switch
陳述式會根據
Date.getDay()
方法傳回的天數來列印一週當中的日子:
var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{
case 0:
trace("Sunday");
break;
case 1:
trace("Monday");
break;
case 2:
trace("Tuesday");
break;
case 3:
trace("Wednesday");
break;
case 4:
trace("Thursday");
break;
case 5:
trace("Friday");
break;
case 6:
trace("Saturday");
break;
default:
trace("Out of range");
break;
}
|
|
|