Switch Case中的经典
生活随笔
收集整理的這篇文章主要介紹了
Switch Case中的经典
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天在看JavaScript優化腳本時,其中有一條是使用三元運算符以及switch語句。關于優化代碼時,使用Switch Case比If Else要快,這點我們知道,但是三元運算符呢?
在JavaScript精粹一書中提到,使用三元運算符比使用If Else語句要快。關于原因,書中并沒有過多的介紹,我想這大概是因為使用三元運算符要比使用If Else代碼要優化的多吧。好了,下面我們來看一個使用三元運算符的例子吧。
Var grade=score>=70?’pass’:fail;
此外,三元運算符也可以像If Else一樣多層嵌套使用,不過為了增強其可讀性,通常將代碼分行寫。看一下小例子:
Var grade=score>=90?’Good’:score>70?’Well’:’fail’;
Var grade=score>=90?’Good’:
??? Score>70?’Well’:
??? ‘fail’;
怎么樣,上面使用三元運算符要比使用If Else節省不少代碼空間吧。
關于三元運算符就說這么多,下面再說兩個你沒有用到過的Switch Case語句,不信?看看你就知道了。
Classical Switch Case:
?Switch case (score){
??Case 90:
???grade=’Good’;
???Break;
??Case 70:
???grade=’Well’;
???Break;
??Default:
???Grade=’fail’;
}
?New Pet Switch Case:
??Switch case (true){
???Case score>=90:
????Var grade=’Good’;
????Break;
???Case score>70:
????Var grade=’Well’;
????Break;
???Default:
????Var grade=’fail’;
}
?Fast Switch Case:
??Switch (score>=70){
???Case true:
????Var grade=’pass’;
????Break;
???Case false:
????Var grade=’fail’;
????Break;
???Default:
????Grade=’It’s impossible to get this result!’;
}
?關于上面這三個Switch Case,毫無疑問,第一個是我們最熟悉的,也是最常用的,而且通過比較,可以發現第一個Switch Case的代碼要比第二個要簡單而且優化。但是兩個Switch Case語句判斷的條件不同,第一個判斷的是一個表達式,第二個判斷的是一個Bool值,我想判斷Bool值應該比判斷表達式速度要快。可惜目前百度Google沒有給我明確的答案。
?此外,采用第二種判斷結構在判斷復雜條件時,優勢更明顯,而且有些復雜結構無法用第一種結構來判斷。比如說,我去超市購物了,看到好多東西要買,就買了一些東西回來。如何使用Switch Case來判斷我買了什么呢?看Example:
?Switch Case (true){
??Case apple>0
???Respose.write(“我買蘋果啦!”);
??Case banana>0
???Respose.write(“我買香蕉啦!”);
??Case orange>0
???Respose.write(“我買橘子啦!”);
??Case else
???Respose.write(“忘了帶錢了,回家拿錢去吧!”);
?}
?關于Switch Case,如果你有什么更新的想法,請聯系我!
在JavaScript精粹一書中提到,使用三元運算符比使用If Else語句要快。關于原因,書中并沒有過多的介紹,我想這大概是因為使用三元運算符要比使用If Else代碼要優化的多吧。好了,下面我們來看一個使用三元運算符的例子吧。
Var grade=score>=70?’pass’:fail;
此外,三元運算符也可以像If Else一樣多層嵌套使用,不過為了增強其可讀性,通常將代碼分行寫。看一下小例子:
Var grade=score>=90?’Good’:score>70?’Well’:’fail’;
Var grade=score>=90?’Good’:
??? Score>70?’Well’:
??? ‘fail’;
怎么樣,上面使用三元運算符要比使用If Else節省不少代碼空間吧。
關于三元運算符就說這么多,下面再說兩個你沒有用到過的Switch Case語句,不信?看看你就知道了。
Classical Switch Case:
?Switch case (score){
??Case 90:
???grade=’Good’;
???Break;
??Case 70:
???grade=’Well’;
???Break;
??Default:
???Grade=’fail’;
}
?New Pet Switch Case:
??Switch case (true){
???Case score>=90:
????Var grade=’Good’;
????Break;
???Case score>70:
????Var grade=’Well’;
????Break;
???Default:
????Var grade=’fail’;
}
?Fast Switch Case:
??Switch (score>=70){
???Case true:
????Var grade=’pass’;
????Break;
???Case false:
????Var grade=’fail’;
????Break;
???Default:
????Grade=’It’s impossible to get this result!’;
}
?關于上面這三個Switch Case,毫無疑問,第一個是我們最熟悉的,也是最常用的,而且通過比較,可以發現第一個Switch Case的代碼要比第二個要簡單而且優化。但是兩個Switch Case語句判斷的條件不同,第一個判斷的是一個表達式,第二個判斷的是一個Bool值,我想判斷Bool值應該比判斷表達式速度要快。可惜目前百度Google沒有給我明確的答案。
?此外,采用第二種判斷結構在判斷復雜條件時,優勢更明顯,而且有些復雜結構無法用第一種結構來判斷。比如說,我去超市購物了,看到好多東西要買,就買了一些東西回來。如何使用Switch Case來判斷我買了什么呢?看Example:
?Switch Case (true){
??Case apple>0
???Respose.write(“我買蘋果啦!”);
??Case banana>0
???Respose.write(“我買香蕉啦!”);
??Case orange>0
???Respose.write(“我買橘子啦!”);
??Case else
???Respose.write(“忘了帶錢了,回家拿錢去吧!”);
?}
?關于Switch Case,如果你有什么更新的想法,請聯系我!
總結
以上是生活随笔為你收集整理的Switch Case中的经典的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RedHat Linux AS4 LAM
- 下一篇: 删除n天前的数据