1.9. 执行条件语句

tag:ActionScript 3 CookBook 简体中文

1.9. 执行条件语句
问题
我要当满足某些条件时才执行一些命令
解决办法
使用 if 或 switch 语句
讨论
我们经常需要让代码去有选择性的执行,这时可以使用 ActionScript 中的条件语句 if, switch, 或 三元条件运算符 (? :).
条件语句允许我们做出逻辑判断,某种情况下应该做什么。if语句是最简单的判断语句,当我们遇到多个可能的情况要处理,这时用switch更好些。而三元条件运算符是把检测和赋值都放在一行中搞定,简化操作。
首先我们来看一下if 语句, if 语句以if关键字开头,接着跟一对括号,括号内为测试表达式,后面的大括号放入测试表达式成立时要执行的代码。
下面的代码检测 animalName 是否等于"turtle."
if (animalName == "turtle") {
  // 如果相等 trace(  ) 语句将被执行
  trace("Yay! 'Turtle' is the correct answer.");
}
另外还可以加上 else 子句来处理当测试表达式不满足时的情况,要注意的是要看到trace()输出的信息则必须让程序在debug模式下运行。我们把输出信息放到showMessage( ) 方法里,这样这个函数就可以被重用了
if (animalName == "turtle") {
  // 条件为真则执行
  showMessage("Yay! 'Turtle' is the correct answer.");
}
else {
  // 条件为假
  showMessage("Sorry, you got the question wrong.");  
}
还可以加入else if 子句,如果 if 条件为真则跳过 else if 子句,如果为假则继续判断 else if 字句是否为真
if (animalName == "turtle") {
  // 条件为真则执行
  showMessage ("Yay! 'Turtle' is the correct answer.");
}
else if (animalName == "dove") {
  //animalName == "dove"成立则执行
  showMessage ("Sorry, a dove is a bird, not a reptile.");
}

还可以包含更多的 else if 子句,然而这种情况,最好的办法就是采用 switch 语句代替,因为switch 与 if 语句结构更加清晰和简洁。 但在某些特殊场合,用 if 可以达到优化性能的目的。
switch 语句包含三部分:

switch 关键字
每个switch 语句都以switch 关键字开始

测试表达式
测试表达式被括号包围,它的结果将决定执行哪段代码。

switch 语句主体
主体中一般包含多个cases子句或一个default 子句

Case 表达式
case表达式将和 switch 表达式进行比较,如果相等就执行当前case的主代码。.

Case 主体y
当所有的case表达式都不等于switch表达式,将执行default主体。
switch (testExpression) {
  case caseExpression:
    // case body
  case caseExpression:
    // case body
  default:
    // case body
}

例子:
var animalName:String = "dove";

switch (animalName) {
  case "turtle":
    trace("Yay! 'Turtle' is the correct answer.");
  case "dove":
    trace("Sorry, a dove is a bird, not a reptile.");
  default:
    trace("Sorry, try again.");
}
一般情况下,在每个case主体最后都会加上 break 语句,这样执行完就会直接退出switch语句。

var animalName:String = "dove";
 
// 现在第2个case主体将被执行
switch (animalName) {
  case "turtle":
    trace("Yay! 'Turtle' is the correct answer.");
    break;
  case "dove":
    trace("Sorry, a dove is a bird, not a reptile.");
    break;
  default:
    trace("Sorry, try again.");
}
当有多个匹配但是执行代码是一样的,这时可以这么写:
switch (animalName) {
  case "turtle":
  case "alligator":
  case "iguana":
    trace("Yay! You named a reptile.");
    break;
  case "dove":
  case "pigeon":
  case "cardinal":
    trace("Sorry, you specified a bird, not a reptile.");
    break;
  default:
    trace("Sorry, try again.");
}
ActionScript 还支持三元条件运算符 (? :), 它把条件测试和赋值语句都放在一行完成。总共有3个操作数,第一个是条件表达式,如果为真,则取第二个操作数为结果,否则去第三个操作数为结果。
               varName = (conditional expression) ? valueIfTrue : valueIfFalse; 

加支付宝好友偷能量挖...


评论(0)网络
阅读(110)喜欢(0)flash/flex/fcs/AIR