条件语句
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 语句不是对条件进行测试以获得布尔值,而是对表达式进行求值并使用计算结果来确定要执行的代码块。代码块以 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;
}