麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

Flash AS3教程:運算符“?:”

2020-07-17 13:17:40
字體:
來源:轉載
供稿:網友
前面給大家演示了一個Flash AS3教程:小游戲開發實戰嘗試,這篇說說運算符的使用。首先個運算符,我們應不應該推崇多使用,先來做個測驗:

CODE:
var sumo:int = 0;
var sumj:int = 0;
for(var i:int = 0; i < 10000000; i ){
if(i % 2 == 0){
sumo = i;
}else{
sumj = i;
}
}
trace(getTimer());
//輸出結果:562

var sumo:int = 0;
var sumj:int = 0;
for(var i:int = 0; i < 10000000; i ){
i % 2 == 0 ? sumo = i : sumj = i;
}
trace(getTimer());
//輸出結果:572
從上面的測試結果不難看出,if else的確比?:快一點,那么是不是就應該拋棄?:呢?答案是錯
在計算10000000次的情況下,他們的效率差是那么的低。。才10毫秒。。
那么我們推薦用?:的時候:
1、沒必要的情況下。
比如,判斷邏輯值,如果為true,則a=20,如果為false,則a=30
代碼:a = p ? 20 : 30;
如果寫成if else,就是
if(p){
a = 20;
}else{
a = 30;
}
用if else勉強說得過去
那么是一個需要傳參的地方,為true,為false,情況不一樣,如果你在多出來5行,來寫這段代碼,個人認為,算是多余的了!
完全可以采用:fun(p ? 20 : 30);
如果說看不懂這樣的代碼,那么繼續往下看,會教大家一種理解 ?: 的辦法

2、邏輯比較復雜,但是都是屬于單向判斷的地方,咱就可以使用 ?: 了
比如我寫的類中,有句這樣的代碼:
num = isMaster ? (p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) : (p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2));
有興趣的朋友把他翻成if else,然后在對比一下這兩個代碼,你覺得那個看起來更累?
當然比較之前,還是繼續看下面,讓我來教大家如何快速理解 ?:

理解的辦法:
先看一個簡單的例子:
a = num == 1 ? 2 : 3;
用通俗的語句說,就是:如果num等于1,則a=2,否則a=3,這個很好理解,那么上面那個類似火星文的代碼
套用這種說法就比較難了,因此我們要改變思維想法,要直觀的看著理解
a是準備接收得值的物體,跟后面的計算無關,那么我們可以直接理解后面
即:num == 1這個物體問2,所以為3,擴充一下語句就是:num == 1問2你等于我嗎?2回答不,所以為3
在直觀理解的時候,先判斷num == 1是否為真值,為真?號后面的,為假:號后面的
不用把?:想象成if else,什么if num == 1 那么就等于2,否則等于3,這樣理解當然慢
就非常直觀的理解,為真,?號,否則:號

我們再來看那個類似火星文的東西:
num = isMaster ? (p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) : (p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2));
isMaster為true,就是(p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) ,否則就是(p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2))
p1為true,就是(p2 ? 2 : 3),否則就是(p2 ? 1 : 4)
…………
依次擴散,其實你會發現一個規律,沒發現也沒關系,我來幫你總結
我一眼就可以看出:
isMaster為true,p1為true,p2為true的時候,num等于2
isMaster為true,p1為true,p2為false的時候,num等于3
isMaster為true,p1為false,p2為true的時候,num等于1
isMaster為true,p1為false,p2為false的時候,num等于4
isMaster為false,p1為true,p2為true的時候,num等于4
isMaster為false,p1為true,p2為false的時候,num等于1
isMaster為false,p1為false,p2為true的時候,num等于3
isMaster為false,p1為false,p2為false的時候,num等于2

就這么簡單,或許你還能發現更多的規律,其實理解?:的時候,不要把他當作if else,記住為true,前面的,否則后面的
涉及太復雜的類型,判斷也不要用?:,但是是一些數字,邏輯值等,用用 ?: ,效果還是很不錯的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av电影网在线观看 | 欧美黑大粗硬毛片视频 | 91精品国产91久久久久久丝袜 | 在线免费小视频 | 97香蕉超级碰碰久久免费软件 | 免费一级欧美大片视频在线 | 午夜国产成人 | 狠狠撸电影| 欧美一级毛片一级毛片 | 色综合久久久久久久久久 | 逼片| 91精品视频在线看 | 在线观看视频毛片 | 激情视频免费看 | 亚洲91在线| 鲁丝一区二区二区四区 | 免费观看一区二区三区视频 | 鲁丝片一区二区三区免费入口 | 日韩剧情片 | 亚洲视频综合网 | 国产午夜精品久久久久久免费视 | 美女黄页网站免费进入 | 日韩一级片免费 | 欧美一级特黄a | 黄色的视频免费观看 | 特级黄色一级毛片 | 毛片在线免费视频 | 91一区二区在线观看 | 黄色网址进入 | 国产亚洲精品久久久久久久久久 | 中文字幕一区在线观看视频 | 欧美精品久久久久久久久久 | 一区二区久久电影 | 欧美另类综合 | 久久久涩 | 国产91九色 | 成人一区久久 | 国产精品18久久久久久久 | 成人午夜激情视频 | 国产精品视频二区不卡 | 国产艳妇av视国产精选av一区 |