Flash.ActionScript3.殿堂之路 笔记 3 [ActionScript3 流程控制]

 ActionScript 3 流程控制


条件选择(Logical Choices)


 if if...else if...else if...else


 1 if(条件表达式){
 //如果表达式的值为 true 执行流程 否则跳过
  流程
 }


 2 if(条件表达式){
 //如果表达式的值为 true 执行流程A 否则执行B
  流程 A
 }else{
  流程 B
 }


 3 if(条件表达式A){
 //如果表达式A的值为 true 执行流程A
 //如果表达式B的值为 true 执行流程B 否则执行C
  流程 A
 }else if(条件表达式B){
  流程 B
 }else{
  流程 C
 }
 //注意:一旦有一个 if 语句中的条件表达式为 true 执行这条语句
 //之后的else if 语句不管是否为true 都不被执行


 4 //如果表达式A的值为 true 执行下一条if语句
 //若果表达式B的值也为 true 执行流程
 if(条件表达式A){
  if(条件表达式B){
   流程
  }
 }


 5 //if语句4相当于
 if(条件表达式A&&条件表达式B){
 //如果表达式A的值为 true 并且 表达式B的值也为 true
 //执行流程
   流程
 }


 6 &&、|| 和 !


 技巧:为了提高程序效率 我们应当把最有可能为真的 if 选项提到最前面去

 

循环(Loop)


当碰到要重复很多相似的操作时 就要考虑使用循环
1 根据某条件挨个比对某集合中的所有成员
2 对某集合中每个成员执行操作
...

ActionScript3 中的循环语句{
 while
 do-while
 for
 for...in
 for each...in
}


循环设计的步骤{
 1 确定循环内容 (哪些事情要重复执行) 这些重复执行的指令 又称为循环体
 2 确定循环变量 用循环变量来控制循环开始于结束
 3 循环三要素 {
  A:循环初始化 在循环结束前 循环变量设置初值
  B:循环条件表达式 (重复指令的条件) 包含条件表达式的终值
  //如果循环不能达到终止条件 循环就变成死循环 AVM 会报错并终止
  C:循环体中必须有改变循环变量值的语句
 }
}


while {


首先判断是否符合循环条件 当满足条件表达式的时候 执行循环体


结构{
 while(循环条件){
  循环体
 }
 var i:int=0;
 while(i<10){ 
  trace(i);
  i++;
 }
}

 

do-while{


先执行循环体一次(不管条件表达式是否为 true) 再判断是否符合循环条件
当满足条件表达式的时候 执行循环体


结构{
 do{
 循环体
 }while(循环条件)
 var i:int=10;
 do{ 
  trace(i);
  i--;
 }while(i>0)
}

 

for 循环{
for 循环应用最广泛 也最灵活
先声明初始化值 当表达式值为 true 时 执行循环体 更新初始化值 再计算表达式的值
如果仍为 true 继续执行循环体 直到表达式的值为 false 终值循环


结构{
 for(初始化;循环条件;步进){
 //步进(Step)是指每次循环 对循环变量所做的变化
  循环体
 }
 for(var i:int=0;i<10;i++){
  trace(i);
 }
 for(var i:int=0,j=0;i+j<10;i++){
  trace(i);
 }
 //定义多个初始变量(条件)
 for(var i:int=0,j=0;i+j<10;i++,j+=2){
  trace(i);
  trace(j);
 }
 for(;;){
  //空循环 无限循环
 }
}


for...in 和 for each...in {
//集合:一个或多个元素的集合
//枚举:挨个访问集合中的所有元素
 var o:Object={
   name:"Tiger",
   age:22,
   sayHi:function():void{
   trace("Hello");
    }
   }

 //k为成员名字
 for(var k in o){
  //trace(typeof(k));
  trace("成员名字: "+k+" 成员值: "+o[k]);
 }

 //k为成员值
 for each(var k in o){
  //trace(typeof(k));
  trace("成员值: "+k);
}
}


break 和 continue


break 和 continue 用来控制循环流程 在循环体内使用


break 用来跳出循环
continue 终止当前一轮的循环 直接跳到下一轮循环
   而在这一轮中 循环体内的 continue 后的语句也不被执行
return 终止循环


break {
 for(var i:int=0;i<5;i++){
 //当 i 等于 3 跳出循环 整个循环终止
  if(i==3) break;
  trace(i); //输出0 1 2
 }
 for(var i:int=0;i<5;i++){
  trace(i);
  if(i==3) break; //输出0 1 2 3
 }
}


continue {
 for(var i:int=0;i<5;i++){
 //当 i 等于 3 跳出当此循环 继续执行后面的循环
  if(i==3) continue;
  trace(i); //输出0 1 2 4
 }
}


break 和 continue 的标签用法


 var v:int=0;
 var v2:int=0;
 var v3:int=0;
 lable:
 for(v;v<10;v++){
  trace(v);
  lable2:
  for(v2;v2<10;v2++){
   if(v2>8) break lable;
   //终止并转到标签为 lable 的循环
   trace(v2);
   //lable3:
   for(v3;v3<10;v3++){
    if(v3>3) continue lable2;
    //终止当此循环 转到标签为 lable2 的循环
    trace(v3);
    }
   }
 }


switch 分支选择语句


switch 语句将括号中的值与各 case 分支中的值相比较 相等则执行
如果没有找到相等的分支 执行 default 分支
ActionScript3 使用 === 比较两者是否相等


 1 var fruits:Array=["苹果","香蕉","葡萄"];
 var currentFruit:String=fruits[Math.floor(Math.random()*fruits.length)];
  trace("摸到的水果是:"+currentFruit);
  switch(currentFruit){
   case "苹果":
    trace("按苹果价付钱");
    break;
   case "香蕉":
    trace("按香蕉价付钱");
    break;
   default:
    trace("免费品尝: "+currentFruit);
  }


 2 省略 break 的用法
  var s:Array=["是","yes","否","no"];
  for each(var i in s){
   switch(i){
    case "是":
    case "yes":
     trace("通过");
     break;
    case "否":
    case "no":
     trace("没有通过");
     break;
    default:
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值