方法
- 定义:封装了一些为了解决某个问题而编写的代码片段称之为一个方法。可以反复使用
方法的定义
- 无参无返回值
- 语法:public static void 方法名(){}
- 调用:方法名();
//写一个方法,打印九九乘法表
public static void print(){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
- 有参无返回值
- 语法:public static void 方法名(数据类型 参数名,数据类型 参数名,…){}
- 调用:方法名(实参);
写一个方法,输入三角形的三条边,输出是否能构成三角形
public static void method1(int a,int b,int c){
if(a+b>c&&a+c>b&&b+c>a){
System.out.println("能构成三角形");
}else {
System.out.println("不能构成三角形");
}
}
- 无参有返回值
- 语法:public static 数据类型 方法名(){}
- 调用:返回值类型 变量名 = 方法名();
//求1-100的和
public static int method1(){
int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
}
return sum;
}
- 有参有返回值
- 语法:public static 数据类型 方法名(数据类型 参数名,…){}
- 调用:返回值类型 变量名 = 方法名(实参);
方法包含 2 个参数 num1 和 num2,它返回这两个参数的最大值。
public static int max(int num1,int num2) {
if(num1 > num2) {
return num1;
}else {
return num2;
}
}
return和break区别
- break 在循环和switch中使用,跳出当前循环
- return 在方法中使用,跳出当前方法
方法的递归
-
递归的定义
解决具有既定规律的问题时,在方法内部再次调用自身方法的一种编程方式 -
何时使用递归?
当需要解决的问题可以拆分成若干个小问题,大小问题的解决方式相同,方法中自己调用自己。
使用循环解决的常规问题,都可以替换为递归解决。 -
如何正确使用递归
设置有效的出口条件,可以让调用链上的每个方法都可以正确返回,避免无穷递归。 -
递归示例:
//案例1:求某个数的阶乘
public static int jc(int num) {
if(num == 1) {
return 1;
}
return num*jc(num-1);
}
//案例2:求斐波那契数列第n项
public static int fb(int n) {
if( n==1 || n == 2) {
return 1;
}
return fb(n-1) + fb(n-2);
}
//案例3:输出一个数的每一位上的值 1234 123
public static void printNum(int num) {
if(num == 0) {
return;
}
System.out.println(num % 10);
printNum(num/10);
}