Java序谈之函数和数组

函数

1、什么是函数?

函数封装了特定功能的代码块

2、函数有什么好处?

函数封装了代码块,方便使用,提高开发效率,大大减少了代码的编写

3、函数的结构

关键字 +返回值类型+函数名+参数列表(参数类型 参数名称1,参数类型 参数名称2)

4、函数的重载

指的是函数名称相同,但是参数列表不同,不同点为以下三点

  • 参数数目不同
  • 参数类型不同
  • 参数顺序不同
无关因素:
  • 返回值类型
  • 参数名称

5、函数的编写步骤

1、首先判断返回值类型

在不需要使用结果进行运算的时候,可以返回值类型为void。当需要使用结果进行运算的时候,可以根据需要设置返回值类型。

2、判断参数列表

判断需要几个参数,分别是什么类型的

6、函数的实例

需求:可以自己输入一些整数,求他们的最大值(可以输入两个或者三个或者四个整数)

	public static int  max(int a,int b) {
		int max=(a>b)?a:b;
		return max;
	}
	public static int max(int a,int b,int c) {
		int max=max(a, b);
		return (max>c)?max:c;
	}	
	public static int max(int a,int b,int c,int d) {
		int max=max(a, b, c);
		//直接return,方便主函数调用后的操作。
		return (max>d)?max:d;
	}	
	public static int max(int a,int b,int c,int d,int e) {
		int max=max(a, b, c, d);
		return (max>e)?max:e;
	}

小结:这里首先利用了函数的重载,不管是两个数或者三个数都是实现求最大值的功能。而后运用了三目运算符比较两数大小,最后运用了函数之间的调用

数组

1、什么是数组?

数组可以看成是一个容器,它盛装了一系列相同类型的数据

2、数组的定义规范

数组中数据类型+[ ]+数组名

3、定义数组的两种方式

数组中数据类型+[ ]+数组名=new 数据类型+[数组中元素个数]

数组中数据类型+[ ]+数组名={数组中的元素}  (语法糖)

4、数组句型分析和注意事项

示例数组: int [] array=new int [5];

1.左边的数组名array,在主函数中,存在于栈中,所有函数执行后就会被系统释放

2.右边的“new”意味着在堆内存中开辟空间,存放五个连续的数据

3.数组的长度一旦声明就不可以改变

4.system.out.print(array)输出的值一般为这种类型 [I@33909752,[ :这是一维数组 I:数组中存放的是int类型数据 33909752:数组在堆中的首地址值

5.一旦array=null,system.out.print(array[2]),这个时候回报错,因为数组名不再指向堆内存,堆内存中的内存区域可能不存在

5、数组实例

需求:随机10个数,随机的区间为15到150,1、把这十个数放入数组中 2、打印最大值

		int [] num=new int [10];
		for(int x=0;x<10;x++) {
			int num1=(int)(Math.random()*136+15);
			num[x]=num1;
		}
		int num2=num[0];
		for(int x=0;x<num.length;x++) {
			if(num2<num[x]) {
				num2=num[x];
			}
		}
		System.out.println(num2);

小结:这里用到了闭区间用随机数random表示,首先实现一个数组在里面随机分配是个数,之后进行比较求最大值,两个步骤

随机数

1、随机数书写格式

Math.random( ),随机数本质上也不是随机的,也是由电脑按照一定的规则输出的数字,也就是所谓的伪随机

2、随机数公式

一个闭区间可以用随机数表示 [ a, b]      int(Math.random()*(b-a+1)+(b-a))

3、随机数实例

需求:随机输出[15,200]十个数,求最大值

	int max=0;
	for(int x=0;x<10;x++) {
		int num2=(int)((Math.random()*186)+15);
		System.out.println(num2);
		if(max<num2) {
			max=num2;
		}
	}
	System.out.println("最大的数:"+max);

小结:在循环外定义一个变量用于比较和接收最大值,之后要在循环里输出随机数,并且每次都和max进行比较,取大,最终得到最大值

递归函数

递归函数思想

通过函数自身调用自身,不断地嵌套,从而反复执行某种操作

注意:这是个死循环,,要定义一个出口结束循环

实例:计算4!阶乘

		public static int recurrence(int n) {
			//递归的出口判断
			if(n==1) {
				return 1;//作为值带入下面的式子进行计算
			}
			return n*recurrence(--n);
		}
小结:每次运算都将 n-1 带入下一次循环,最终到n==1的情况,这个时候进入if语句这个出口,结束循环

break与continue

它们有什么区别?

break:结束循环,跳出这个程序,执行循环之后的操作

continue:结束本次循环,继续进行下一次循环

相同点:它们的后面都不可以跟上语句,因为不会执行,即使加上也没有意义

实例:break在嵌套循环中的作用

	for(int i=0;i<10;i++) {
		for(int j=0;j<10;j++) {
			if(j==8) {
				break ;
			}
			System.out.print(j);
		}
			System.out.println();
		}

小结:外循环为10次,每次的内循环只会输出0-7,j=8时候,break跳出内循环

实例:continue在嵌套循环中的作用

			for(int i=0;i<10;i++) {
				for(int j=0;j<10;j++) {
					if(j==8) {
						continue ;
					}
					System.out.print(j);
				}
				System.out.println();
			}
小结:外循环10次,每次内循环当j=8进入下一次循环,不会输出8,输出0-7和9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值