任意條件:專門判斷等值比較的條件:switch case
何時使用:如果所有條件都是等值比較時
switch case 因爲不帶隱式類型轉換,效率稍微高一些
語法:switch (表達式){
case 值1;
case 值2;
.........
default:
默認代碼
}
switch:入口,進入第一匹配的case中,開始依次向下執行
break:中止當前結構的繼續執行 ---只能自己一句話
何時不加break:相鄰兩個case執行相同操作時,中間不加break
2.***循環結構:讓程序反覆執行相同一段代碼
循環三要素:
1.循環條件:保證循環可以*繼續*執行的判斷條件
2.循環變量:循環條件中,用作判斷的變量;從幾開始,每次變化多少?
保證循環不變爲死循環,循環變量都要向着不滿足循環條件的趨勢發生變化
3.循環體:循環反覆執行的代碼段
循環體中都要迭代變化循環變量的值
while循環:
語法:var 循環變量=初始值;//聲明並初始化循環變量
while(循環條件){//當滿足循環條件時,才進入循環執行
循環體;
迭代變化循環變量;
}
break:中止當前結構的執行
continue:中止本輪循環,繼續下一輪;顛倒執行continue的條件,可省略continue,實現跳過本輪的效果
退出循環:2中方式
1.優雅:完全使用循環條件控制循環退出 --難度高
2.野蠻:在循環體中,任意位置強行break --隨意
do-while:
語法:var 循環體=初始值;
do{
循環體;
迭代變化循環變量;
}while(循環條件);
變化:while後的循環體,剪切到while前,開頭加do,結尾加;
對比:do-while vs while
只看開始循環前,條件是否滿足:
開始循環前,條件都滿足:則兩者完全一樣;
開始循環前,條件不滿足:do-while 至少執行一次循環體
while一次都無法執行
何時使用do-while:如果第一次條件都不滿足,也至少希望執行一次時
for:for循環完全等效於 while循環
何時使用:只要循環變量有規律,就用for循環
語法:for(var 循環變量=初始值;循環條件;迭代變化循環變量){
循環體;
}
例:1加到100:
/*三要素: * 1.加數<=100 * 2.加數 從1開始每次增1 * 3.將加數累加到一個數碼、變量中*/ var sum=0; for(var n=0;n<=100;n++ ){ /*sum=sum +n;*/ sum+=n; } console.log(sum);
特殊寫法:
1.for中第一部分,可同時聲明並初始化多個變量
2.for中第三部分,可同時執行多個小操作,但要注意執行順序
3.for循環條件可省略,省略後是死循環
比如:for(;;)替代while(true)
作用域:js vs java
js:2級作用域:全局;函數
java:3級作用域:全局;函數;塊級({})