switch语句格式
switch(表达式1){
case 值1:
语句1;
break;
case 值2:
语句2;
break:
...
default:
语句n;
break;
}
执行流程:
1)表达式中的值先和case值1比较,如果匹配,执行语句1,语句break,语句结束;
2)case值1不匹配,继续和case值2进行比较,如果一致,执行语句2,swich结束;
...
...
3)如果上面的case的值和表达式中的结果值都不匹配,执行default语句,
执行语句n,switch语句结束;
注意事项:
1)case语句里面是有break,
如果没有书写break,会造成"case穿透"
2)case语句后面的值只能是常量值,不能是变量值
(Java是一个强类型语言:语法结构很严谨)
3)关于default语句
它可以在语句中的任何位置,不影响switch语句的执行流程!
但是如果在语句中,那么break不要省略!(考点)
如果default语句它在语句的末尾,break可以省略
4)switch语句的结束条件:
1)语句break结束
2)程序默认执行到末尾!(顺序结构语句都是依次由上而下,末尾结束!)
循环语句之for
for(初始化语句;条件表达式;控制体语句或步长语句){
循环体语句;
}
执行流程:
1)先初始化语句进行赋值
2)判断条件表达式是否成立,如果成立,执行循环体语句
2.1)继续执行控制台语句或者步长语句 对初始化语句的变量进行自增或者自减
2.2)继续判断条件表达是否成立,如果成立,按照上面 这种方式执行;
2.3)如果变量自增或者自减到条件表达式不成立为止,循环语句结束!
循环语句之while
初始化语句
while(条件表达式){
循环体语句;
控制体语句;
}
执行流程:
1)初始化语句进行变量赋值
2)判断条件表达式是否成立,
成立,执行循环体语句,依次执行控制体语句(对变量控制)
继续回到2)进行判断
...
...
3)条件表达式不满足,循环结束!
面试题
while和for的区别?
共同点:
都是使用循环思想解决一些问题
不同点:
1)格式本身不同
for(初始化语句;条件表达式;控制体语句){
循环体语句;
}
初始化语句;
while(条件表达式){
循环体语句;
控制体语句;
}
2)是否明确循环次数
for循环:明确循环次数优先for循环,(for还是很频繁使用的)
while循环:不明确循环次数,使用while循环
3)从内存角度考虑销毁不同:
for循环结束,里面的变量及时释放了,所以不能在访问for中的变量
while循环结束,依然可以访问里面变量,
所以消耗资源相对for循环大一些!
死循环
for(;;){
循环体
}
while(true){
循环体
}
利用死循环解决一些问题!
死循环:肯定需要利用一些条件,当达到某种条件的时候,结束循环(break;中断,结束!)