//函数:具有特定功能的代码块
/*
* 库函数:系统已经定义好的功能模块! 例如:next()
* 自定义函数: 程序员自行定义进行功能封装!
* 定义规则:
* public static 返回值类型 函数名(参数列表){
* 函数体
* }
*
* void 代表没有返回值,返回值为空
* 注意:
* 函数分为两部分 : 定义和调用!
* 默认定义完的函数绝对不会执行,必须要调用!
*
*
* 注意:
* 形参:形式上的参数,起占位作用!没有确切的值!在函数的定一部分
* 实参:实际上真实有效存在的参数值,在函数调用部分
* 并实参会将值传给形参!传值是单向的!
*
* 局部和全局
* 在java中可以划分局部作用域的是{}
* 在{}中定义的变量,仅仅在{}内部使用
*
* 返回值return
* 1.在哪里调用函数 返回值就返回哪里
* 2.return 可以直接结束代码的执行!所以代码不要写在return 之下!
*
* 现在可以理解为,形参会将数据带入到本函数中!
* 返回值会将数据带出函数带给主调函数(就是调用函数的部分)
*
* 在函数A中,调用函数B,叫做函数的嵌套调用!!!
* 在java中禁止在函数A中定义函数B!
*
*/
简单代码示例:
1.定义一个无参数无返回值的函数:
public static void printText() {
//这是一个无参数无返回值的函数
System.out.println("傻屌凯是沙雕");
}
2.定义一个有参数返回值的函数:
//定义函数 用于求和
public static void sumValue(int a, int b) {
//这个是有参数无返回值的函数
System.out.println("两数之和是:" + (a + b));
}
3.定义函数,返回函数最大值:
//求两个数的最大值
public static int twoMax(int a, int b) {
int max = a > b ? a : b;
return max;
}
//求三个数的最大值
public static int threeMax(int a, int b, int c) {
return twoMax(twoMax(a, b) , c);
}
//求四个数的最大值
public static int fourMax(int a, int b, int c, int d) {
return twoMax(threeMax(a, b, c), d);
}
4.判断一个数是否是质数:
//定义函数,用于判断一个数是不是质数
public static void number(int num) {
if(num == 1) {
System.out.println("不是一个质数");
}
int count = 0;
for(int i = 2; i < num; i++) {
if(num % i == 0) {
count++;
}
}
if(count == 0) {
System.out.println(num + "是一个质数" );
}else {
System.out.println(num + "不是一个质数");
}
}
5.定义函数,给数组排序:
//定义函数,用于给数组排序
public static void sort(int[] array) {
Scanner scanner = new Scanner(System.in);
System.out.print("请选择是升序还是降序(0.升序 1.降序): ");
int choose = scanner.nextInt();
int temp;
for(int i = 0; i < array.length - 1; i++) {
for(int j = 0; j < array.length - i - 1; j++) {
if(choose == 0) {
if(array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}else {
if(array[j] < array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
for(int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
6.定义函数,实现彩票机选多注功能
//随机单注彩票,使用函数可以让用户自行输入机选的注数,并且输出机选多注的结果
//number表示用户选的注数
public static void medic(int number) {
Random random = new Random();
int[] arr = new int[7];
for(int k = 0; k < number; k++) {
arr[0] = random.nextInt(33) + 1;
for(int i = 1; i < 6; i++) {
arr[i] = random.nextInt(33) + 1;
for(int j = 0; j < i; j ++) {
if(arr[i] == arr[j]) {
i--;
break;
}
}
}
arr[6] = random.nextInt(17) + 1;
System.out.print("红球:");
for(int i = 0; i < arr.length - 1; i++) {
System.out.print(arr[i] + " ");
}
System.out.print("蓝球:" + arr[arr.length - 1]);
System.out.println();
}
}