Day04
if语句
格式1:
if(表达式){
语句;
}
if语句的注意事项:
1.有左大括号的地方{ 不能有分号;有分号的地方不能有左大括号
2.if语句中如果是单条语句,大括号可以省略,(永远建议不要省略)
3.Java中有一个代码块的概念
写法:
{
int x =10 ;
System.out.println(x);
}
4.表达式:无论是复杂的还是简单的,都是boolean类型
格式2
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
1.首先判断表达式是否成立
2.如果成立,语句1;
3.如果不成立,执行语句2
== 应用场景==:针对两种结果进行判断
if语句的格式2,和三元运算符的区别?
三元运算符这对的是某个数据的数据值在进行判断;
(表达式)?true的结果:false的结果;
if语句格式2:
针对两个结果进行判断,输出一个结果(可能是一个输出语句,也可能是具体的值)
三元运算符能够使用的,一定可以使用if;但是if使用,不一定能够收三元!
开发过程中,没有特别要求,都是用If语句!
格式3
if格式3:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程:
1.先判断表达式1是否成立,成立,执行语句1
2.如果不成立,在此判断表达式2是否成立,成立,执行语句2
3…最终上面的结果都不匹配,执行else中的语句n+1
switch语句
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break; (中断,结束的意思)
case 值2:
语句体2;
break;
…
default: (默认的意思)
语句体n+1;
break;
}
== 执行流程==:重点
1)表达式中的值和case中的 值1进行比较,匹配成功,就执行语句1,遇见break,switch 结束了
2)依次case值2,进行比较,成立,执行语句2,语句结束…
3)…如果上述都不匹配,执行default中的语句,break结束.
格式解释:
switch ----->启用当前switch语句
表达式------>一般接收具体的变量
表达式的类型一般情况:byte,short,int,char
如果是jdk1.5以后,表达式的类型可以是"枚举"
如果是jdk1.7以后,表达式的类型可以是String类型 (String:是一个引用类型)
case语句---->需要将当前的case的值和switch中表达式进行比较,是否匹配
break语句—> 表示结束,中断 switch语句
default ---->case后面都不匹配,执行default
面试题:
switch中的表达式可以是byte类型吗? 是
switch中的表达式可以是String类型吗? jdk1.7以后可以跟String
switch中的表达式可以是枚举类型吗? jdk1.5以后可以是枚举
switch语句的注意事项:
1)在Java语言中,case后面的值只能是常量,不能是变量 ---->前端:javascript (js)
2)关于switch语句的中break(属于跳转控制语句中的一种)
break一般情况下建议不要省略,如果没有书写break语句,会出现case穿透现象!
3)关于default语句的位置问题
a)default语句中的break可以忽略不写,但是不建议
b)可以在switch语句中的任何位置,但是还要遵循switch的按照顺序进行执行(case中都不匹配,才能执行default)
c)如果default语句在语句中,break不能省略!
4)switch语句的结束条件:
a)语句break,语句结束
b)程序默认执行末尾,语句结束!
图例分析
题目
结果:y=4,b=6
循环语句
for循环语句
for(初始化语句;条件表达式;控制体语句){
语句体;
}
执行流程:
1)执行初始化语句---->给变量进行赋值
2)判断条件表达式是否成立,如果成立,true—>执行语句体
3)执行控制体语句,----->再次判断条件是否成立,如果成立,继续执行语句体
4)一直执行到条件判断表达式不成立,即为false的时候,循环语句结束…
题目:控制输出1到10
经典案例 (for 语句的思想构造)
统计案例
while循环语句
格式:基本格式
while(判断条件语句) {
循环体语句;
}
扩展格式 (使用扩展格式)
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
执行流程:
1)初始化语句进行变量赋值
2)判断条件是否成立,—>成立,执行循环体语句—>执行控制体语句
3)再次判断条件是否成立—>成立----->依次
4)一直条件条件不成立,结束!
for循环和while循环的区别 ?
1)如果明确循环的次数,使用for循环,否则使用while循环
2)从内存角度考虑,如果循环结束后,还想去访问那个变量,使用while循环
死循环案例: