依旧是活力满满的一天奥老铁们。
今天学习了数组,数组包括了以下方面:
1.动态初始化:自己定义数组的长度,系统决定初始值。
2.静态初始化:自己决定数组的初始值,系统决定长度。
3.数组的的索引:索引从0开始并逐一增加(每次加1),我们要存储数组的数据时,要用索引来存储,话不多说上代码。
有两种方法,第一种直接一个一个去存储,第二种用键盘录入,for循环, i<arr.lenght,(数组的长度),然后用变量str去接收用户输入的数据,再用数组索引去接收str的值,最后输出打印。
我们遍历数组时也要用到索引,来人上例子:
遍历数组也有两种奥,第一种依旧是直男使用方法,直接打印数组的数据,第二种就用for循环,用变量str去接收数据,然后打印输出。别写出数组范围了奥老铁们,说到超出数组范围时我们看下面,
4.索引越界异常:有两种
第一种
我们先写一个数组,数组范围是0-4不包括5,那我们直接输出打印索引为5的数据会怎么样呢,
会坏掉的(😍),然后我们就能看到一片鲜艳红代码,怎么办呢?这时不要慌,我们直接用baidu翻译,让它(你知道的),ArrayIndexOutOfBoundsException 翻译过来就是:数组越界异常,我们可以通过改变数组的范围来解决,或者直接使用数组范围的数也可以。嘻嘻
下面我们看另外一个错误
我们写一个数组包含1-3的数据,先使数组=null,表示什么都没有,我们再打印索引为0的数据,显示报错,这时我们再掏出baidu翻译看看怎么事,NullPointerException :空指针异常
显示数组没有数据,所以报错,这个不太常出现,可以了解一下哈;
下面我们用数组来做以下题目;
一,获取数组的最大值和最小值 (int[] arr = {12,45,98,73,60};)
你们也可以自己定义一个数组来做,Not much to say 直接上代码。
我们写一个数组,用一个变量max来接收数组的最大值,我们默认索引为0的数据为最大值,
用for循环写,数组的范围,用if语句判断,如果arr [ i ] > max,当数组的数据大于max(arr [ 0 ])
arr[ 0 ]=12,arr[ 1 ] =45,我们就使max=arr[ 1 ],这样子去循环,直到max=数组的最大值,
求最小值也一样的思路,当arr[ i ]< min,直到min=数组的最小值即可。
二,需求:随机产生10个[0,100]之间整数,统计既是3又是5,但不是7的倍数的个数
家人们这题也是直接拿下了,嘿嘿
我们先写一个数组,题目要求生成随机数,我们就用Random来生成,记得(0-100)可以在后面加个1或直接写(101);然后我们用一个变量num接收输出的个数,
用for循环写出数组的范围,随机数记得写循环里面,用if语句判断随机数是否满足条件,满足的话num递增。
最后在输出打印语句就ok了。
三,需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
这老登一反常态,最难的留最后了,
这题我们分为两个部分来做。
我们键盘录入好用来记录评委打分,写一个数组来记录评委个数,写一个变量sum后面好接收键盘录入的数据,再用for循环,循环数组的范围,if语句判断键盘录入是否在1到100的范围里面,如果在就用数组接收,反之,不在的话,停止循环,
接下来就是求最大值,最小值,上面做过了哦
再看下面,
定义一个变量total接收评委打分的总分数,简简单单奥,用一个for循环,循环数组,
再用 total+=arr[ i ],计算出总分数,在打印输出就行了。
最后用变量avg来算出除max和min的平均数
打印输出得到结果;
这题别看代码挺多的,其实拆分来看的话很简单,主要是做题思路找到了,就very好做了。
ok了家人们今天这个数组简简单单拿下了,明天见❤️