1.知识点
一维数组:定义、初始化、使用(相关的算法,常用系统类的使用)
多维数组:定义、初始化、使用
增强for循环,break、continue控制语句的学习
2.讲解
什么是数组?
例子
//要求把一个班的一门课的成绩,加起来求平均值;
import java.util.*;
class  Average{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        float avg=0;
        float sum=0;
        int count=1;
        while(count<=3){
            sum=Float();
            count++;
        }
            avg=sum/(count-1);
            System.out.println("平均值是:"+avg);
        System.out.println("程序结束");
    }
}
//新要求:我要在输出平均值的同时,也要将这门课的最高分,最低分,同时也要能看到这门的成绩
数组概念:一组能够存储相同数据类型值的变量的集合。
在java中我们本着一切是对象的原则,我们把数组在java中看成是对象,数组对象。数组是最基本的引用型数据类型。
一维数组的知识点
定义方法:
1、三步法
A、int[] arr;用来申明数组的引用,在栈中为arr开辟内存;
B、arr = new int[5];这是为数组arr在堆中为数组元素开辟6个存储单元;
C、把数组在堆中的起始位置给了arr这个引用变量
*一般我们的程序在运行时,我们为局部变量在栈中开辟内存,而为对象(对象属性)在堆中开辟内存。为对象方法在方法区开辟内存空间。为类的属性,在静态区开辟内存空间。
具体的内存图:
2、一步法:
A、int[] arr = new int[6];//这样做完后,arr中有6个元素,它们的默认值是0;
B、int[] arr = new int[]{1,2,3,4};//这样这个数组arr中的元素个数是四个,并且初始值为1,2,3,4;
C、int[] arr={1,2,3,4};//这种做法是静态的声明方法,是为了给c转过来的程序员,方便使用。
import java.util.*;
class Average1{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        float avg=0;
        float sum=0;
        int count=0;
        int n=0;
       
        System.out.println("班级人数:");
        try{
            Int();
        }catch(InputMismatchException e0){
       
        }
        float[] cj = new float[n];//完成数组的声明
       
        System.out.println("开始输入班级成绩:");
        while(count<n){
            try{//完成数组的元素的引用和初始化
                cj[count]=sc.nextFloat();
                sum+=cj[count];
                count++;
            }catch(InputMismatchException e1){
           
            }
        }
        avg=sum/n;//avg=sum/count;
    for(int i=0;i<cj.length;i++){//完成数组的输出,cj.length表示的就是数组的长度。
//length在这里是数组对象的一个静态属性,它始终存储的是数组的长度。
            System.out.print(cj[i]+":");
        }
        System.out.print("\b");
        System.out.println("平均值:"+avg);
        System.out.println("程序结束");
    }
}
通过上面的例子我们完成了一维数组的定义,初始化,并且也完成了数组的输出。
数组最大值、最小值
import java.util.*;
class ScoreHandler{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        float avg=0;
        float max=0;
        float min=0;
        float sum=0;
        int count=0;
        int n=0;
        StringBuilder result=new StringBuilder();//这非同步的字符串缓冲类
        System.out.println("班级人数:");
        try{
            Int();
        }catch(InputMismatchException e0){
       
        }
        float[] cj = new float[n];//完成数组的声明
       
数组定义时初始化        System.out.println("开始输入班级成绩:");
        while(count<n){
            try{//完成数组的元素的引用和初始化
                cj[count]=sc.nextFloat();
                sum+=cj[count];
                count++;
            }catch(InputMismatchException e1){
           
            }
        }
        avg=sum/n;//avg=sum/count;
        //求最高分
        max=cj[0];
        for(int i=1;i<cj.length;i++){
            if(max<cj[i]){
                max=cj[i];
            }
        }
        //求最低分
        min=cj[0];
        for(int i=1;i<cj.length;i++){
            if(min>cj[i]){
                min=cj[i];
            }
        }
        //完成数组的输出
        for(int i=0;i<cj.length;i++){
            //System.out.print(cj[i]+":");
            result.append(cj[i]+":");
           
        }
        result.deleteCharAt(result.length()-1);
        //result.delete(result.length()-1,result.length());
        //System.out.print(result.substring(0,result.length()-1));
        //result.setCharAt(result.length()-1,' ');
        System.out.print(result);
        System.out.println();
        System.out.println("平均值:"+avg+":最高分:"+max+":最低分:"+min);
        System.out.println("程序结束");
    }
}
以上是通过分步来求最大、最小;下面我们把求最大最小的过程进行封装成一个方法来简化求解过程,方便以后多次求解同类问题。
import java.util.*;
class ScoreHandler1{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        float avg=0;
        float max=0;
        float min=0;
        //float sum=0;
        int count=0;
        int n=0;
        StringBuilder result=new StringBuilder();//这非同步的字符串缓冲类
        System.out.println("班级人数:");
        try{
            Int();
        }catch(InputMismatchException e0){
       
        }
        float[] cj = new float[n];//完成数组的声明
       
        System.out.println("开始输入班级成绩:");
        while(count<n){
            try{//完成数组的元素的引用和初始化
                cj[count]=sc.nextFloat();
                //sum+=cj[count];
                count++;
            }catch(InputMismatchException e1){
           
            }
        }
        //同过调用求平均值的放法来求一门课的平均值
        avg=average(cj);
        //求最高分
        max=maxScore(cj);
        //求最低分

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。