3.Java基础知识:函数

1、函数

1.1 介绍

就是定义在 类中具有特定功能 的一段 独立小程序,与main函数同级别。

1.2 语法

修饰符  返回值类型  函数名(参数类型 形式参数1, 参数类型 形式参数2, ...)
{
    执行语句;
    return 返回值;
}
  • 返回值类型 : 函数运行后结果的数据类型。
  • 参数类型 : 是形式参数的数据类型。
  • 形式参数 : 是一个变量,用于存储调用函数时传递给函数的实际参数。
  • 实际参数 : 传递给形式参数的具体数值。
  • return : 用于结束函数。
    注意 : 如果函数返回值类型为 void, 默认可以不写 return; 但,系统会默认在结束处自动添加 return 关键字。
  • 返回值 : 该函数运算后的结果.该结果会返回给调用者。

1.3 函数的作用 :

将一段需要被重用的代码封装在函数之中, 什么时候想要执行这段代码, 只需要调用这个函数就可以了.并且函数可以实现在调用时传入参数信息,并且在运算完成之后返回结果信息给调用者.

1.4 带一个参数的函数

public class Demo {
    public static void main(String[] args) {
        oddOrEven(9);
        oddOrEven(10);
    }

    // 判断奇偶数
    public static void oddOrEven(int num) {
        // 判断思路 : 用这个额数模以2,等于0,就是偶数,否则就是奇数
        if (num % 2 == 0) {
            System.out.println("num:" + num + "是一个偶数");
        } else {
            System.out.println("num:" + num + "是一个奇数");
        }
    }
}

1.5 带多个参数的函数

public class Demo {
    public static void main(String[] args) {
        // 调用自定义函数
        oddAndEven(131);
    
        int r = getSum(10, 20);
        System.out.println("r=" + r);
    
        int max = getMax(40, 20);
        System.out.println("max=" + max);
    
        int min = getMin(40, 20);
        System.out.println("min=" + min);
    
        int result = getSumOfRange(100, 1);
        System.out.println("result = " + result);
    }
    
    // 4.	写一个函数,求指定范围中所有整数的累加和. 1, 10 (1 + 2 + 3 + ... 10)
    public static int getSumOfRange(int min, int max) {
        
        if (min > max) {
            System.out.println("怎么可能最小的值比最大的还大大大大大...呀!");
            return 0;
        }
    
        int sum = 0; //  变量
        for (int i = min; i <= max; i++) {
            sum = sum + i;
        }
        return sum;
    }
    
    // 3.	写一个函数,求两个整型数值中较小的数.
    public static int getMin(int num1, int num2) {
        // 三元运算符
        return num1 < num2 ? num1 : num2;
    }
    
    // 2.	写一个函数,求两个整型数值中较大的数.
    public static int getMax(int num1, int num2) {
        // 三元运算符
        return num1 > num2 ? num1 : num2;
    }
    
    // 功能: 求两个数的和
    public static int getSum(int num1, int num2) {
        return num1 + num2;
    }
    
    // 功能: 判断一个整数的奇偶性
    public static void oddAndEven(int num) {
        if ((num & 1) == 1) {
            System.out.println("num:" + num + "是一个奇数");
        } else {
            System.out.println("num:" + num + "是一个偶数");
        }
    }
}

1.6 return 关键字

使用在函数之中,代表立即结束整个函数, 如果函数体后面还有代码也不会被执行到的,是立刻,马上结束函数。

return 、break 、continue 之间的区别 :

  • break
/*
1.可以用在switch-case的case块中, 代表立即结束某条case的语句.
2.还可以用在循环体之中, 代表立即结束当前循环结构.
3.只能结束当前循环结构, 如果循环后面还有代码, 是会继续执行后面的代码.*/
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 1) {
                break;
            }
            System.out.println("I love you"); // 会输出一次
        }
        System.out.println("I hate you"); // 会执行以下两句代码
        System.out.println("I miss you");
    }
}
  • continue
/*
只能使用在循环体之中, 代表立即结束本次循环, 并马上回去判断条件.
*/
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 1) {
                continue;
            }
            System.out.println("I love you"); // 会输出9次
        }
        System.out.println("I hate you"); // 会执行1次以下两句代码
        System.out.println("I miss you");
    }
}
  • return
/*
1. return用在main函数之中, 表示结束整个程序.
*/
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 1) {
                return;
            }
            System.out.println("I love you"); // 会执行一次输出

        }
        System.out.println("I hate you"); // 不会执行以下两句代码
        System.out.println("I miss you");
    }
}

/*
2. return用在自定义函数之中, 表示结束自定义函数.返回主函数中继续后续代码.
*/
public class FunctionDemo {
    public static void main(String[] args) {
        expressLove();    // 调用自定义函数
        System.out.println("I hate you");
        System.out.println("I miss you");
    }

    // 功能: 自定义函数 `表达爱`
    public static void expressLove() {
        for (int i = 0; i < 10; i++) {
            if (i == 1) {
                return; // return 在自定义函数中出现表示结束自定义函数,并返回到主函数中继续执行后续代码.
            }
            System.out.println("I love you");
        }
    }
}

2、函数的重载 (overload)

2.1 介绍

Java允许在一个类中定义多个名称相同的函数,但是参数的类型或个数必须不同,这就是函数的重载。

函数的重载,要求必须在同一个类(程序)中,有多个同名的函数,它们的参数列表不同。

public class Demo {
    public static void main(String[] args) {
        int result1 = add(10, 20);
        System.out.println("result1=" + result1);
        int result2 = add(10, 20, 30);
        System.out.println("result2=" + result2);
        float result3 = add(10.18f, 20.66f);
        System.out.println("result3=" + result3);
    }

    // 功能 : 实现两个整数相加
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    // 功能 : 实现三个整数相加
    public static int add(int num1, int num2, int num3) {
        return num1 + num2 + num3;
    }

    // 功能 : 实现两个小数相加
    public static float add(float num1, float num2) {
        return num1 + num2;
    }
}