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;
}
}