方法调用
- 控制流就是在任何时刻将要进行的工作,计算机是知道自己下一步该做什么的机器
可以使用调试器观察程序执行的过程,方法栈帧的调用和销毁构成了程序执行的基本顺序
while与do while循环
区别就是do while无论如何都会执行一遍执行体的语句,而while会先判断 ```java while(条件语句,返回boolean的语句 ) { // 执行体 }
do { // 执行体 } while (条件语句,返回boolean的语句)
<a name="O1DZA"></a>
# for循环
- 比while循环更常用,有fori foreach两种
- foreach只可用于实现了**迭代接口**的类生成的对象 implements Iterable<String>
```java
for ( int i = 0; // 任何语句,一般为初始化语句,但甚至可以是空语句 ;
i < 100; // 返回boolean的语句,但可以是空语句
i ++ // 执行完循环体后执行的操作语句
) {
// 循环体语句
}
for ( String element : Iterable<String>) {
sout(elements)... // 循环体语句
}
改变循环的流程 break/continue 关键字
break
立刻结束包裹当前break的第一层循环,执行顺序直接到for循环之后
continue
-
break label
java中,可以使用标识符加冒号声明一个label,label后面可以跟语句
最外层循环:
for(){
for(){
break 最外层循环;
}
}
可以使用break label跳出多层循环,类似goto语句,实现程序控制流程的转移
switch语句
可以switch哪些内容
- int、long、char、byte、short
- 枚举 enum
- String (JDK7+)
- switch case 会被穿透,经常需要配合break实现期望的控制流,但是如果希望继续执行后面的语句,可以利用此特性
注意switch 内部变量作用域,仍根据包围的花括号原则
int i = new Random().nextInt(5);
switch(i){
case 0:
case 1:
case 2:
System.out.println(i);break;
case 3:
{
String s = "zb";
}
break;
case 4:
{
String s = "hx";
}
break;
default:
...
}
其他
所有控制流语句都可以互相嵌套