java.lang.ArrayIndexOutOfBoundsException:数组下标越界,有可能是负数,也有可能下标超过了数组的最下标
总结:数组是一片连续的内存空间
数组的使用
1:声明数组;-------类型 数组名[]; boolean bs[];
2:开辟内存空间-----数组名=new 类型[长度]; bs=new boolean[4];
注意:1,2步可以合在一起写 boolean bs[]=new boolean[4];
3:赋值--------------直接赋值,循环赋值-----------------------------------------------------------------------
数组的直接赋值
例子:存储学生名字的数组:String names[]={"张三","李四","王五"};
声明数组:
- String[] aArray = new String[5];
- String[] bArray = {"a","b","c", "d", "e"};
- String[] cArray = new String[]{"a","b","c","d","e"};
-
例1:从控制台接受全班5个同学成绩,使用数组存储计算平均分package com.hp;
import java.util.Scanner;
public class demo3 {
public static void main(String[] args) {
int[]arr=new int[5];//创建一个数组arr长度为5
int sum=0;//定义一个变量平均分
Scanner sc=new Scanner(System.in);
for(int i=0;i<arr.length;i++){
arr[i]=sc.nextInt();
sum=arr[i]+sum;
}
System.out.println("平均分:"+sum/5);
}
}
- 例2:输入五位学员的年龄求出最大年龄
- package com.hp;
import java.util.Scanner;
public class demo4 {
public static void main(String[] args) {
int ages[]=new int[5];//存储五位学员的年龄
int max_age;//用来存储最大年龄
Scanner sc=new Scanner(System.in);//录入年龄
System.out.println("请输入五位学员的年龄:");
for(int i=0;i<ages.length;i++){
System.out.println("第"+(i+1)+"位学员");
ages[i]=sc.nextInt();
}
max_age=ages[0];
for(int i=1;i<ages.length;i++){
if(ages[i]>max_age){
max_age=ages[i];
}
}
System.out.println("最大年龄为:"+max_age);
}
} - 例三:从控制台接受全班五个同学的成绩使用数组存储计算姓张的同学有几个
- package com.hp;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
//System.out.print("三丰".startsWith("张"));
String []names=new String[5];
int count=0;
Scanner sc=new Scanner(System.in);
System.out.println("输入姓名:");
for(int i=0;i<names.length;i++){
names[i]=sc.nextLine();
if (names[i].startsWith("张")) {
count++;
}
}
System.out.println("张出现的次数是" + count + "次");
}
}