控制语句
半塘 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
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
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
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(变量){
case 值1:
执行代码1
break;
case 值1:
执行代码2
break;
case 值3:
执行代码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
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
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
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
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
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
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
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
其他异常内容详看 异常