目录
for while do...while 三种循环语句的区别
流程控制语句
流程控制语句:在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
分类:顺序结构、选择结构、循环结构
顺序结构
顺序结构:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。 总的来说:写在前面的先执行,写在后面的后执行——从上往下,依次执行。
选择结构
选择结构:也被称为分支结构。 选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句 if语句 switch语句
if语句
if语句格式:3种
- 格式1:if(关系表达式) { 语句体 }
- 执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;
- 格式2:if(比较表达式) {
语句体1;
}else {
语句体2;
}
- 执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体1
如果是false,就执行语句体2
- 格式3:if(比较表达式1) {
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else {
语句体n+1;
}
- 执行流程:
判断比较表达式1的值,看是true还是false
如果是true,就执行语句体1
如果是false,就继续判断比较表达式2的值,看是true还是false
如果是true,就执行语句体2
如果是false,就继续判断比较表达式3的值,看是true还是false
...
如果都不满足,就执行语句体n+1
if语句注意事项:
- 比较表达式无论简单还是复杂,结果必须是boolean类型
- if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
- 一般来说:有左大括号就没有分号,有分号就没有左大括号
三元运算符和if语句第二种格式的关系
- 所有的三元运算符能够实现的,if语句的第二种格式都能实现。反之不成立。
- 如果if语句第二种格式控制的语句体是输出语句,就不可以。
- 因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。
switch语句
- 格式:switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
} - 格式解释说明:
switch:说明这是switch语句。
表达式:可以是byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面的值就是要和表达式进行比较的值
break:表示程序到这里中断,跳出switch语句
default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else - 执行流程:
- 首先计算表达的值
- 和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。
- 如果没有匹配,就执行default的语句体n+1。
- 注意事项:
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:case就可以把值固定。 A,B,C,D - break可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略 - default可以在任意位置。但是建议在最后。
- switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
选择结构if与switch的使用场景
if
- 针对boolean类型的判断
- 针对一个范围的判断
- 针对几个常量的判断
switch
- 针对几个常量的判断
循环结构
循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
java中有三种循环结构:for,while,do...while
for循环语句
- 格式:for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
} - 执行流程:
- 执行初始化语句
- 执行判断条件语句
- 如果这里是true,就继续 ,如果这里是false,循环就结束
- 执行循环体语句
- 执行控制条件语句
- 回到2
- 注意事项:
- 判断条件语句无论简单还是复杂,结果是boolean类型
- 循环体语句如果是一条,可以省略大括号,但是不建议
- 有分号就没有左大括号,有左大括号就没有分号
while循环语句
- 基本格式:while(判断条件语句) {
循环体语句;
} - 扩展格式: 初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
} - 通过查看这个格式,我们就知道while循环可以和for循环等价转换。
for循环和while循环的区别
- 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
- 场景区别: for循环适合针对一个范围判断进行操作 while循环适合判断次数不明确操作(吃葡萄)
do...while循环语句
- 基本格式
do {
循环体语句;
}while(判断条件语句);
- 扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句); - 1
for while do...while 三种循环语句的区别
- do...while循环至少执行一次循环体
- for和while必须先判断条件是否是true,然后后才能决定是否执行循环体
循环使用的注意事项(死循环)
- 一定要注意修改控制条件,否则容易出现死循环。
- 最简单的死循环格式
- while(true){...}
- for(;;){}
跳转控制语句
跳转控制语句:break 中断 continue 继续 return 返回
- break:中断的意思
- 用在循环和switch语句中,离开此应用场景无意义。
- 作用
- 跳出单层循环
- 跳出多层循环,需要标签语句的配合(格式:标签名:语句)
- continue:继续
- 用在循环中,离开此应用场景无意义。
- 作用:跳出单层循环的一次,可以继续下一次
- return:返回
- 用于结束方法的,
- 一旦遇到return,程序就不会在继续往后执行