1、流程控制概述
1、流程控制:顺序、选择、循环
2、选择结构包括if else和switch结构,其中if结构判断条件是一个布尔类型,switch条件是常量值;
switch(表达式){
case 常量表达式1:
语句1;break;
case 常量表达式2:
语句2;break;
default:
语句3;
}
3、break语句:break可以结束当前循环的执行,执行完break语句后,循环体中位于break语句后面的语句就不会被执行,在多重循环中,break语句指向外跳一层。比如:
package com.imooc;
public class HelloImooc {
public static void main(String[] args) {
System.out.println("Hello World");
int k=0;
for(int i=1;i<5;i++) {
for(int j=1;j<5;j++) {
k=i+j;
System.out.print("i:"+i);
System.out.print("j:"+j);
System.out.println("k:"+k);
if(j==3)break;
}
}
}
}
上一段代码的输出结果是:
Hello World
i:1 j:1 k:2; i:1 j:2 k:3; i:1 j:3 k:4;
i:2 j:1 k:3; i:2 j:2 k:4; i:2 j:3 k:5;
i:3 j:1 k:4; i:3 j:2 k:5; i:3 j:3 k:6;
i:4 j:1 k:5; i:4 j:2 k:6; i:4 j:3 k:7;
特别注意,break只跳出当前所在的循环当中,上图在j的循环外还有i的循环,所以break是让程序跳出了j所在循环,进入到外层i的循环,其实就是省去了j=4的输出内容。
4、continue语句:continue是结束当前循环的执行,但要继续下次循环的执行,意思就是还在所在的循环中,比如:
package com.imooc;
public class HelloImooc {
public static void main(String[] args) {
System.out.println("Hello World");
int k=0;
for(int i=1;i<5;i++) {
for(int j=1;j<5;j++) {
if(j==2)continue;
k=i+j;
System.out.print("i:"+i);
System.out.print(" j:"+j);
System.out.println(" k:"+k);
}
}
}
}
可以看到在内层循环中,当j=2,循环还在j这里,只是这次的循环在continue后面的内容并不会执行,执行结果是:
Hello World
i:1 j:1 k:2; i:1 j:3 k:4; i:1 j:4 k:5;
i:2 j:1 k:3; i:2 j:3 k:5; i:2 j:4 k:6;
i:3 j:1 k:4; i:3 j:3 k:6; i:3 j:4 k:7;
i:4 j:1 k:5; i:4 j:3 k:7; i:4 j:4 k:8;
2、Debug调试
1、调试的作用:让程序员看清每一步的效果,在需要查看结果的是时候,使用debug查看实际记过是否和预期相同;
2、通过debug对变量数值的显示,我们也能看到在循环体中定义的变量在循环体外面就不存在了
3、debug的步骤:
(1)设置断点:在要设置断点的哪一行的最前面双击空白区域,会出现一个蓝色的breakpoint(断点)
(2)执行调试:之前执行程序都是点击Run as,现在进行调试就是点击Debug As。
4、快捷键的设置:F11是debug调制执行的快捷键,F6单步调试,F5进入到方法内部去执行,F7是由方法内部返回调用处,F8可以从一个断点跳到下一个断点处。另外一个就是ctrl+F11是直接执行程序的快捷键。