方法调用
- 控制流就是在任何时刻将要进行的工作,计算机是知道自己下一步该做什么的机器
可以使用调试器观察程序执行的过程,方法栈帧的调用和销毁构成了程序执行的基本顺序
while与do while循环
区别就是do while无论如何都会执行一遍执行体的语句,而while会先判断 ```java while(条件语句,返回boolean的语句 ) { // 执行体 }
do { // 执行体 } while (条件语句,返回boolean的语句)
<a name="O1DZA"></a># for循环- 比while循环更常用,有fori foreach两种- foreach只可用于实现了**迭代接口**的类生成的对象 implements Iterable<String>```javafor ( 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:...}
其他
所有控制流语句都可以互相嵌套
