0%

Java(2)流程控制语句与方法重载

4. JAVA的流程控制语句

4.1 判断语句

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
// 单分支
if(条件判断语句){

}

// 双分支
if(条件判断语句){

} else{

}

// 多分支
if(条件判断语句){

}else if(条件判断语句){

}else{

}

// 三元运算符
int a = 10, b = 20;
int c;
if(a > b){
c = a;
} else{
c = b;
}
c = a > b ? a : b;

4.2 选择语句

1
2
3
4
5
6
7
8
9
10
11
switch(表达式){
case 常量1:
语句体;
break;
case 常量2:
语句体;
break;
default:
语句体n+1;
break;
}

4.3 循环语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// for循环
for(初始化表达式1;布尔值表达式2;步进表达式3){
循环体4;
}


// while循环
初始化表达式1
while(布尔值表达式2){
循环体4;
步进表达式3;
}

// do...while循环;无条件执行一次。
初始化表达式1
do{
循环体4;
步进表达式3;
}while(布尔表达式)

// break 终止 switch或者循环
// continue 结束本次循环,继续下一次的循环

4.4 三种循环的区别

  1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
  2. for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用,并且如果再循环内部值发生了变化,外部也会跟着发生变化。

5. JAVA方法的重载

对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦!

方法的重载(Overload),多个方法的名称一样,但是参数列表不一样。

方法重载与下列因素相关:

  1. 参数个数不同
  2. 参数类型不同
  3. 参数的多类型顺序不同
    方法重载与下列因素无关:
  4. 与参数的名称无关
  5. 与方法的返回值类型无关
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
32
33
34
35
36
37
38
public class MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10, 20));
System.out.println(sum(10, 20, 30));
System.out.println(sum(10, 20, 30, 40));
System.out.println(sum(10, 20, 30, 40));
System.out.println(sum(10, 20.0));
System.out.println(sum(10.0, 20));
System.out.println(sum(10.0, 20.0));
}

public static int sum(int a, double b){
return (int) (a + b);
}

public static int sum(double a, int b){
return (int) (a + b);
}

public static int sum(double a, double b){
return (int) (a + b);
}

public static int sum(int a, int b){
System.out.println("有俩个参数方法的执行!");
return a + b;
}

public static int sum(int a, int b, int c){
System.out.println("有三个参数方法的执行!");
return a + b + c;
}

public static int sum(int a, int b, int c, int d){
System.out.println("有四个参数方法的执行!");
return a + b + c + d;
}
}
  • 题目要求:
  • 比较两个数据是否相等。
  • 参数类型分别为两个byte,两个short类型,两个int类型,两个long类型,
  • 并在main方法中进行测试
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
public class task11 {
public static void main(String[] args) {
byte a1 = 10, b1 = 20;
short a2 = 11, b2 = 11;
int a3 = 12, b3 = 22;
long a4 = 13L, b4 = 13L;
System.out.println(eq(a1,b1));
System.out.println(eq(a2,b2));
System.out.println(eq(a3,b3));
System.out.println(eq(a4,b4));
}

public static boolean eq(byte a, byte b){
return a == b;
}
public static boolean eq(short a, short b){
return a == b;
}
public static boolean eq(int a, int b){
return a == b;
}
public static boolean eq(long a, long b){
return a == b;
}
}

-------------本文结束感谢您的阅读-------------