java基础之数组

定义:

数组存储相同数据类型的一组数据。

声明一个变量就是在内存空间划出一块合适的空间

声明一个数组就是在内存空间划出一串连续的空间

数组的基本要素:

·标识符(数组名称):是一个变量名,遵循驼峰命名规则

·数组元素

·元素类型:数组中所有元素的数据类型相同

·元素下标,从0开始,到数组长度-1

注意:数组长度固定不变,避免数组越界

思考:下列哪组数据能存储在数组中?数组的类型是什么?

·“刘星”,“夏雨”,“夏雪”

·898,“c”,23

·98.1342.134.2
如何使用数组?

使用数组四步走:

1.声明数组 int[] a;

2.分配空间 a = new int[5];

3.赋值 a[0] = 8;

4.处理数据 a[0] = a[0]*10;

说明:506班上厕所

数组声明方法:

1.和声明一个变量类似,可以先声明数组,再分配空间:

数据类型[] 数组名;

数组名 = new 数据类型[大小];

2.也可以声明数组的同时分配空间

·数据类型[] 数组名 = new 数据类型[大小];

3.边声明边赋值

·简写:int[] scores = {100,90,80};

·完整格式:int[] scores2 = new int[]{100,90,80} ;//切记,此时中括号中不能写长度

注:数组元素根据类型不同,有不同的初始值

int类型的数组,系统默认赋值为0。

String类型的数组,系统默认赋值为null。

double类型的数组,系统默认赋值为0.0。

课堂练习:

声明一个数组,用于存储从控制台接受的30个学生的成绩并学生成绩的平均值。

参考代码:

int[] scores = new int[30];
Scanner input = new Scanner(System.in);
int sums = 0;//求和变量
for(int i = 0;i<30;i++){
    System.out.println("请输入第"+(i+1)+"个同学的成绩");
    scores[i] = input.nextInt();//将控制台输入的值赋给数组
    sums+=scores[i];//数组累加求和
}
System.out.println(sums/30);

代码改进:如果要求50个学生的平均值,代码需要修改的地方有三处,不够灵活。使用数组长度(数组名.length)代替固定值。

int[] scores = new int[30];
Scanner input = new Scanner(System.in);
int sums = 0;//求和变量
for(int i = 0;i<scores.length;i++){
    System.out.println("请输入第"+(i+1)+"个同学的成绩");
    scores[i] = input.nextInt();//将控制台输入的值赋给数组
    sums+=scores[i];//数组累加求和
}
System.out.println(sums/scores.length);
增强for循环(foreach循环)

适用于可迭代对象

语法格式:

for(数据类型 变量名:被迭代对象){
	//代码块
}

示例:

int[] scores = new int[]{12,23,21,43};
int sum = 0;
for(int score:scores){
    sum+=score;//数组元素累加求和
}
System.out.println(sum/scores.length);
数组常见错误1:
public class ErrorDemo1 {
    public static void main(String[] args) {
        int[] score = new int[];
        score[0] = 89;
        score[1] = 63;
        System.out.println(score[0]);
    }
}

数组常见错误2:

int[] score = new int[2];
score[0] = 90;
score[1] = 85;
score[2] = 65;
System.out.println(score[2]);

数组常见错误3:

int[] score = new int[5];
score = {60,80,90,70,85};

int[] score2;
score2 = {60,80,90,70,85};

·创建数组并赋值必须在一条语句中完成。

数组常见错误4:

public class ErrorDemo {
    public static void main(String[] args) {
        int[] scores = new int[6];
        for(int score : scores){
            score = 9;
        }
        System.out.println(scores[0]);
    }
}

foreach是用来遍历数组(取值)的,不能用来对数组赋值

数组练习:
有一个数列:84212334412
    ·循环输出数列的值
    ·求数列中所有数值的和
    ·猜数游戏:从键盘中国任意输入一个数据,判断数据中是否包含此数

参考代码:

public class ArraysDemo {
    public static void main(String[] args) {
        int sum = 0;//定义求和变量
        //定义数组
        int[] scores = new int[]{8,4,2,1,23,344,12};
        Scanner sc = new Scanner(System.in);
		//循环输出值并求和
        for(int score : scores){
            System.out.println(score);
            sum += score;
        }
        System.out.println("scores数组元素的和为"+sum);
        //猜数游戏
        System.out.println("请输入一个数字:");
        int number = sc.nextInt();
        for(int score : scores){
            //在遍历的过程中对比数组元素和输入值是否相等
            if(number == score){
                System.out.println("包含此数字");
                return;
            }
        }
        System.out.println("不包含此数字");
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值