if语句和switch语句的的区别 使用场景 switch建议判断固定值时使用 if建议判断区间或范围的时候用
|
Java语言基础
流程控制语句:可以控制程序的执行流程
流程控制语句分类:顺序结构:由上到下,依次执行
选择结构:if、switch语句
循环结构:for、while、do…while语句
一般来说:有左大括号就没有分号,有分号就没有左大括号。
;在语句中的意思是代表本语句结束。
If语句的格式: if(条件表达式){ 语句体; }
条件表达式(关系表达式)的返回值只能是boolean类型(true或者是fasle),如果是fasle就不执行语句。
|
If语句的格式: if(条件表达式1){ 语句体1; }else if(条件表达式2){ 语句体2; }else{ 语句体n+1; } 如果true,执行语句1,if语句结束。如果都是false,执行else分支语句体n+1。
|
If语句的格式: if(条件表达式){ 语句体1; }else{ 语句体2; }
如果true,执行语句1 如果fasle,执行语句2 |
基本数据类型可以接受byte、short、int、char 引用数据类型可以接收枚举、string字符串。 |
不同于if的比较(条件)表达式 x可以理解成表达式 |
选择结构switch语句
int x = 10; switch(表达式){ case 值1: 语句体1; break; case值2: 语句体2; break; default: 语句体 n+1; break; }
|
先计算表达式中的值,用表达式的值跟值1去匹配,如果相等,则输入语句体1。执行完成后,遇到break跳出语句。若为成功匹配则与值2 进行匹配。 |
以上条件都不相等时,执行default,其作用等同于if else中的else。 |
注意:在循环结构中,可以使用break关键字跳出整个循环;使用continue关键字跳出当前循环。 |
面试题:可以作为Switch语句的表达式中的数据类型有:byte、short、int、char、string、enum…。基本数据类型只要是能自动提升为int的都可以。Long不行。
switch语句的注意事项
1、case后面只能是常量,不能是变量。而且,多个case后面的值不能出现相同的。
2、default不建议省略。不论他在什么位置,都是在执行完case匹配后才执行。
3、break不建议省略,否则会出现case穿透。每种case结果都会输出,没法阻拦。
由于switch语句是优先执行case语句,后执行default语句,所以先执行case 3 ,依次往后执行,最后是default。 |
int x = 2 int y = 3; switch(x){ default: y++; (break;) case 3: y++; case 4: y++; } System.out.print(“y=”+y); }
|
4、switch结束只有两种情况:a、遇到break。b、遇到右大括号。
此处如果没有break,则y值会继续向下累加,最终输出为y=6 若此处有break,则输出结果为y=4 |
for(初始化表达式;条件表达式;循环后操作表达式){ 循环体语句; }
|
for语句格式
执行流程
1、执行初始化语句
2、执行判断条件语句,看起返回值是true还是false
A、如果是true,就继续执行
B、如果是false,就结束循环
3、执行循环体语句
4、执行循环后的操作表达式
5、回到2继续
while语句格式
执行流程
1、执行初始化语句
2、执行判断条件语句,看起返回值是true还是false
A、如果是true,就继续执行
B、如果是false,就结束循环
3、执行循环体语句
4、执行控制条件语句
5、回到2继续
初始化语句; do { 循环体语句; 控制条件语句; } while(判断条件语句); |
do….while语句格式
执行流程
1、执行初始化语句
2、执行循环体语句
3、执行控制条件语句
4、执行判断条件语句,看起返回值是true还是false
A、如果是true,就继续执行
B、如果是false,就结束循环
5、回到2继续