对比if语句switch语句
1、if语句作用的数据类型:boolean类型。而switch语句作用的类型:byte,short,int,char,String。
2、编码习惯:if适合分支较少的情况,switch适合分支较多的情况。
//1.if语句
if(条件表达式){
}
//2.if...else语句:二选一
if(条件表达式){
语句块1;
}else{
语句块2;
}
//3.多重if语句:多选一
if(条件1){//成立
语句块1;
}else if(条件2){
语句块2;
}else if(条件3){
语句块3;
}...
else{
}
//4.if语句的嵌套
if(条件1){
if(条件2){
}else{
}
}else{
}
switch-case语句
//1.switch语句
switch(变量/表达式){//byte,short,char,int,String
case 数值1:分支1;break;
case 数值2:分支2;break;
case 数值3:分支3;break;
default:
最后的一个分支语句;break;
}
/*
switch的注意点:
1、case后的数值,必须是唯一的。
2、case是无序的。
3、switch语句作用的类型:byte,short,char,int,String
4、default语句:是可选的。
*/
//2.break语句
break:打破,打坏,此处用于结束switch语句。
switch中的变量和case后的数值进行匹配,如果匹配成功,那么就执行这个case后的分支,如果没有遇到break语句,那么后续的case不再匹配,直接执行。(switch的穿透)一直到遇到break位置,或者switch都结束了。
局部变量
局部变量:定义在函数里面的变量。
1、局部变量只能在当前所声明该变量的代码块中使用,超出当前代码块的范围无效。报错:找不着符号。作用域问题:可以作用的范围!!!
2、在一个变量的作用范围内,任何的地方都可以直接使用该变量。
3、在一个变量的作用域范围内,不能定义相同名字的其他变量。
4、局部变量未赋值,不能直接使用。
条件满足,某些代码会被反复多次的执行。条件不成立了,循环结束。0-n次。
为什么使用循环开发中可能会把某些代码需要执行多次,如果使用CV大法,CV战士,治标不治本。会出现以下问题
1、代码过于臃肿!
2、代码阅读性极差!
3、代码维护性极差!
1、初始化部分:对循环变量进行初始赋值。
2、循环条件部分:判断循环变量是否满足循环条件。
3、循环体部分:要循环执行的具体的代码。
4、更新循环变量部分:修改循环变量的值。
特点:首次即有入口条件,先判断、再执行;适用于循环次数明确的情况。
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
/*
执行流程:
首先判断while之后的小括号里的循环条件的值:boolean--->true,false
如果是true,表示循环条件成立,那么执行{}里的内容,然后再来判断条件
如果是false,表示循环条件不成立,那么循环结束
*/
/*
注意事项:
1、学会循环过程推理,避免死循环
2、如果出现死循环,ctrl+c 终止程序
*/
//while循环的特点:先判断条件,再执行代码。
while循环的流程图:
do-while循环
特点:首次没有入口条件,先执行、再判断;适用于循环次数不明确的情况。
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
对比while和do-while循环
while循环,先判断循环的条件,然后根据条件执行里面的循环体。一句话:先判断,再执行。
do-while循环,先执行一遍循环体,然后再来判断条件。一句话:先执行,再判断。
特点:首次即有入口条件,先判断、再执行;适用于循环次数明确的情况。
标准语法:
for(表达式1;表达式2 ;表达式3){
循环体;
}
1、表达式2如果省略,表示循环永真。
循环条件默认是true--->成立
2、表达式3:本来是跟在循环体后面执行的。
但是不是很建议
3、如果表达式1、3都省略,只剩表达式2-->相当于
while(循环条件){
}
4、如果表达式1,2,3都省略:for(;;){}--->相当于
while(true){
}
break语句
跳转控制语句(break)
跳出循环,结束循环
结束本次,进入下一次循环。
注意: continue只能在循环中进行使用!