流程控制语句
流程控制语句分类
- 顺序结构
- 写在前面的先执行,写在后面的后执行
- 选择结构(分支结构)
- 循环结构
选择结构
- if语句
- switch语句
switch语句
- 表达式的取值:byte,short,int,char
- JDK5以后可以是枚举
- JDK7以后可以是String
面试题
switch语句的表达式可以是byte吗?可以是long吗?可以是String吗?
可以,不可以,JDK7以后可以
case穿透
case穿透是指:switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果没有break语句,那么就会从表达式的值相匹配的case标签处开始执行,一直执行到switch语句的末尾,这种从其中的一个case处开始,忽略后面的值的匹配,直接运行case的内容
的现象就是穿透的现象。
int x = 2;
int y = 3;
switch (x) {
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y=" + y);//4
int x = 2;
int y = 3;
switch (x) {
case 1:
y++;
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y=" + y);//6
合理使用case穿透
switch(month) {
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("你输入的月份有误");
}
循环结构
- for循环
- while循环
- do while循环
循环语句的组成:
- 初始化语句:
- 一条或者多条语句,这些语句完成一些初始化操作。
- 判断条件语句:
- 这是一个boolean 表达式,这个表达式能决定是否执行循环体。
- 循环体语句:
- 这个部分是循环体语句,也就是我们要多次做的事情。
- 控制条件语句:
- 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
for循环
数组逆序
public static void reverse2(int[] arr) {
for(int start=0,end=arr.length-1; start<=end; start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
for循环和while循环的区别
- 使用区别:
- 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用;
如果你想继续使用,就用while,否则推荐使用for;
原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
- 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用;
- 场景区别:
- for循环适合针对一个范围判断进行操作
- while循环适合判断次数不明确操作
跳转控制语句
- break 中断
- continue 继续
- return 返回
跳出多层循环
带标签的语句:
格式:
标签名: 语句
//在 switch 或 loop 外部中断
//break;
//跳出单层循环
for(int x=0; x<10; x++) {
if(x == 3) {
break;
}
System.out.println("HelloWorld");
}
System.out.println("over");
System.out.println("-------------");
//跳出多层循环
wc:for(int x=0; x<3; x++) {
nc:for(int y=0; y<4; y++) {
if(y == 2) {
//continue nc;
//continue nc;
//break wc;
break wc;
}
System.out.print("*");
}
System.out.println();
}
以上概念总结于传智播客Java基础课程