控制语句

2023/11/5 Java基础
目录

控制语句是Java的语法基础,以后会经常用到。Java执行代码默认是按顺序结构执行。

# 1. 分支结构

# 1.1、if

条件成立执行代码,条件不成立不执行代码。

// 语法
if(boolean条件){
    执行代码
}

// 案例
if(true){
    System.out.println("true");
}

if(3==3){
    System.out.println("true");
}

// 字符传内容相等用equals方法判断,判断字符串对象是否同一个用==。
// equals判断内容。==判断是否指向同一个引用(内存地址)。
String a = "abc";
String b = new String("abc");

if(a==b){
    System.out.println("同一个string对象");
}
if(a.equals(b){
    System.out.println("相同string内容");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 1.2、if-else

条件满足执行代码1,否则执行另外一段代码2

// 语法
if(boolean条件){
    执行代码1
}else{
    执行代码2
}

// 案例
String a = "abc";
String b = new String("abc");

if(a==b){
    System.out.println("同一个string对象");
}else{
    System.out.println("相同string内容");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 1.3、if-else if-else

如果条件判断成立,则执行代码1,不然接着判断,条件成立执行代码2,否则执行代码3。else if 可以有多个。

// 语法
if(boolean条件1){
    执行代码1
}else if(boolean条件2){
    执行代码2
}else if(boolean条件3){
    执行代码3
}else{
    执行代码n
}


// 案例
String a = "abc";
String b = new String("abc");

if(a==b){
    System.out.println("同一个string对象");
}else if(a.equals(b)){
    System.out.println("相同string内容");
}else{
    System.out.println("既不是同一个string对象,内容也不相同");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 1.4、switch

类似if-else if-else结构,但是只能判断一个条件。

// 语法
switch(变量){
    case1:
        执行代码1
        break;
    case1:
        执行代码2
        break;
    case3:
        执行代码3
        break;
    default:
        // default 相当于最后的else,都不满足条件时执行
        执行代码n
        break;
}

// 案例
String a = "abc";
switch(a){
    case "abc":
        System.out.println("abc");
        break;
    case "abcd":
        System.out.println("abcd");
        break;
    default:
        System.out.println("其他值");
        break;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 2、循环结构

# 2.1、for

循环执行代码,直到执行完毕。

// 语法
for(初始化; 布尔表达式; 更新){
    执行代码
}

// 案例
for(int i=0; i<10; i++){
    System.out.println("数值:"+i);
}

String[] names = {"张三", "李四", "王五", "赵六"};
for(int i=0; i<names.length; i++){
    System.out.println("姓名:"+names[i]);
}

// 如果是List,还有一种写法,可以后面看看集合部分
List<String> names = new ArrayList<>();
names.add("张三");
names.add("李四");
names.add("王五");
names.add("赵六");
for(String name: names){
    System.out.println("姓名:"+name);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 2.2、while

循环执行代码,直到条件不满足。

// 语法
while(布尔表达式){
    执行代码
}

// 案例
int i = 0;
while(i<10){
    System.out.println("数值:"+i);
    i++;
}
1
2
3
4
5
6
7
8
9
10
11

# 2.3、do-while

循环执行代码,直到条件不满足。用法同while,区别在于do-while一定会执行一次。因为while先判断条件再执行,而do-while先执行再判断条件。

// 语法
do{
    执行代码
}while(布尔表达式);

// 案例
int i = 0;
do{
    System.out.println("数值:"+i);
    i++;
}while(i<10);
1
2
3
4
5
6
7
8
9
10
11

# 3、跳转语句

# 3.1、break

用于跳出循环,终止循环。

// 结束for循环
int i;
for(i=0; i<10; i++){
    if(i==5){
        // 直接结束循环
        break;
    }
    System.out.println("数值:"+i);
}

// 结束while循环
i = 0;
while(i){
    if(i==5){
        // 直接结束循环
        break;
    }
    System.out.println("数值:"+i);
    i++;
}

// 结束do-while循环
i = 0;
do{
    if(i==5){
        // 直接结束循环
        break;
    }
    System.out.println("数值:"+i);
    i++;
}while(i<10);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 3.2、continue

结束本次循环,直接进入下一次循环,不再执行本次循环后面的代码。

// 结束for单次循环
int i;
for(i=0; i<10; i++){
    if(i==5){
        // 结束本次循环
        continue;
    }
    System.out.println("数值:"+i);
}

// 结束while单次循环
i = 0;
while(i){
    if(i==5){
        // 结束本次循环
        continue;
    }
    System.out.println("数值:"+i);
    i++;
}

// 结束do-while单次循环
i = 0;
do{
    if(i==5){
        // 结束本次循环
        continue;
    }
    System.out.println("数值:"+i);
    i++;
}while(i<10);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 4、异常处理语句

# 4.1、try-catch-finally

用于捕获异常,try块中放可能出现异常的代码,catch块中放异常处理代码,finally块中放最后一定要执行的代码。finally可以省略。

// 语法
try{
    // 可能出现异常的代码
}catch(Exception e){   
    // 异常处理代码
}finally{
    // 最后一定要执行的代码
}

// 案例:除数是不能为0的,所以当除数为0时,程序会报错。
int i = 0;
try{
    i = i/0;
    System.out.println("数值:"+i);
}catch(Exception e){
    System.out.println("除数不能为0");
}
// 输出结果:除数不能为0

// finally一定会执行
i = 0;
try{
    i = i/0;
    System.out.println("数值:"+i);
}catch(Exception e){
    System.out.println("除数不能为0");
}finally{
    i = i + 10;
    System.out.println("finally值:"+i);
}
// 输出结果:除数不能为0 和 finally值:10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 4.2、throws、throw

其他异常内容详看 异常