java第四章:数组

数组:

数组是相同数据类型元素的有序集合。

数组的声明:

数据类型[] 数组名字 = new 数据类型[数组长度];    eg:int[] nums = new int[5];  不初始化的话,默认int值为0;

数组的下标:

从0开始,最大值是数组长度—1;[0,nums.length-1]

数组的赋值:

数组名字[下标] = 值;

nums[0]=10;

nums[1]=20;

nums[2]=30;

nums[3]=40;

nums[4]=50;

nums[5]=60;//  java.lang.ArrayIndexOutOfBoundsException(数组下标越界异常)

数组的动态初始化:

int[] nums = new int[5];

nums[0]=10;

.....

数组的静态初始化:

int[] nums = {1,2,3,4,5};正确

int[] nums = new int[]{1,2,3,4,5};正确

int[5] nums = new int[]{1,2,3,4,5};错误;

int[5] nums = {1,2,3,4,5};错误;

int[] nums;

nums = {1,2,3,4,5}错误;

int[] nums;

nums = new int[]{1,2,3,4,5};正确

总之[]里面不能写数组长度值,写就报错!

 

代码练习题:根据用户输入的人数,动态创建数组,并获取用户输入的成绩,统计最高分,最低分和平均分

 

package cn.zzsxt.test.demo4;

import java.util.Scanner;

public class TestArray3 {
    public static void main(String[] args) {
        System.out.println("请输入班级人数:");
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        double sum = 0;
        double avg = 0;
        double max, min;
        // 创建成绩数组
        double[] scores = new double[num];
        // 给每个同学赋成绩值
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个同学的成绩:");
            scores[i] = input.nextDouble();

        }

        max = scores[0];
        min = scores[0];
        // 遍历出每个同学成绩
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
            if (scores[i] > max) {
                max = scores[i];
            }
            if (scores[i] < min) {
                min = scores[i];
            }
        }
        avg = sum / num;
        System.out.println("总成绩是:" + sum);
        System.out.println("平均成绩是:" + avg);
        System.out.println("最大值是:" + max);
        System.out.println("最小值是:" + min);
    }
}

 高级for循环练习

package cn.zzsxt.test.demo4;

public class TestForEach {
    public static void main(String[] args) {
        int[] nums = new int[] { 10, 20, 35, 40, 50 };
        for (int i = 0; i < nums.length; i++) {
            int n = nums[i];
            System.out.println(n);
        }
        System.out.println("==============");
        /* 本质上也是先通过下标取到每个元素值,主要用于遍历元素。
         * 功能略逊于for循环! 数据类型一定要与数组的数据类型保持一致
         * for...each:高级for循环for(int n : nums){
         *  }
         * ==> 等价于
         * for(int i=0;i<nums.length;i++){
         *         int n= nums[i]
         * }
         */
        for (int n : nums) {
            System.out.println(n);
        }
    }
}

 

posted @ 2017-05-31 16:58  赵鹏达  阅读(272)  评论(0编辑  收藏  举报