1.*分支结构:
任意条件:专门判断等值比较的条件: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级作用域:全局;函数;块级({})