A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 裘-样 中级黑马   /  2015-9-14 21:18  /  328 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima.javaday5;

/*
        今天讲的是函数和数组。
        重点还是在于理解性的建议和敲代码去多练习。
        一些格式和操作我尽量在案例的代码旁边标注一些,希望有助于大家的理解。
       
1.函数
        1.1,格式:
                修饰符 返回值类型 函数名(形参类型 形式参数1,形参类型 形式参数2...)
                {
                        函数体;
                        reutrn 返回值;
                }
        1.2,函数的调用
                A:有明确返回值
                        a:单独调用        一般用于没有返回值的函数(即返回值类型为void)。
                        b:输出调用        一般建议先使用赋值调用,再使用这个输出调用。
                        c:赋值调用        推荐方式。

                B:void类型
                        单独调用

        1.3,函数重载

        1.4,***案例***
                1.4.1,有明确返回值的例子:
                        A:求两个数据的和
                        B:求两个数据的最大值
                        C:比较两个数是否相等
                1.4.2,void类型例子:
                        A:nn乘法表
                        B:根据给定的行和列输出一个*组成的长方形

2:数组(掌握)
        2.1,格式:
                A:int[] arr = new int[3];
                B:int arr[] = new int[3];
                C:int[] arr = new int[]{1,2,3};
                D:int[] arr = {1,2,3};
        2.2,***操作***:
                数组的长度。
                A:数组的遍历
                B:数组获取最值
                C:数组的查找
        2.3,数组操作的常见问题:
                A:数组越界异常。你访问了不存在的索引。
                        ArrayIndexOutOfBoundsException
               
                B:空指针异常。一个实例(对象)已经不存在了,你还去访问它的内容。
                        NullPointerException

3.二维数组:
        3.1,格式:
                A:int[][] arr = new int[3][2];
                B:int[][] arr = new int[3][];
                C:int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
        3.2,遍历:
        3.3,**应用**:遍历求和。
*/
class FunctionAndArray
{
        public static void main(String[] args){
               
                System.out.println("首先练习的案例是函数的:");
                System.out.println();
                System.out.println("两个数的和为:"+sum(10,9));//输出调用
                System.out.println("三个数的和为:"+sum(10,9,8));//函数的重载

                int max = getMax(10,1);//赋值调用
                System.out.println("两个数中的最大值为:"+max);

                System.out.println("判断两个数想不想等,相等的返回true,不相等的返回false:"+compare(10,9));//测试不相等的情况
                System.out.println("判断两个数想不想等,相等的返回true,不相等的返回false:"+compare(1,1));//测试相等的情况,两种情况都测过,才能初步说明函数的正确性

                table99(9);//直接调用
                System.out.println("----------------------------------------------");
                System.out.println();
                System.out.println("接下来的是数组:");
                System.out.println();

                //数组的创建
                int[] arr = new int[5];//最标准的方式,也是常用的
                int[] arr2 = {10,3,56,78,2,8,4};//常用的方式
                int[] arr3 = new int[]{2,8,4,10,3,56,78};//上一种方式是这种方式的简写格式,比较少用,也不建议用
                int arr4[] = new int[5];//这种方式和第一种比较像,只是这种方式更符合c++程序员的习惯,但不建议使用

                System.out.println("数组arr的长度为:"+arr.length);//数组的长度

                System.out.println("接下来输出的是数组arr2:");
                print(arr2);//A:数组的遍历
                System.out.println("数组arr3中的最值为:"+getMaxArray(arr3));//B:数组获取最值
                System.out.println("返回数组中值为 56 的索引值:"+getIndex(arr3,56));//C:数组的查找
               
                //System.out.println(arr4[5]);//数组越界 ArrayIndexOutOfBoundsException: 5
                arr4 = null;
                //System.out.println(arr4[0]);//空指针异常 lang.NullPointerException

                System.out.println("----------------------------------------------");
                System.out.println();
                System.out.println("接下来的是二维数组,现在可以只作为了解:");
                System.out.println();
                int[][] brr = new int[3][2];//最标准的方式,常用
                int[][] brr2 = new int[3][];//一般在不规则的二维数组定义时需要用到
                int[][] brr3 = {{1,2,3},{4,5},{6,7,8,9}};//常用,静态初始化的方式
                System.out.println("接下来输出的是二维数组brr3:");
                printTD(brr3);//二维数组的遍历
                int sum = sumTD(brr3);//二维数组的遍历求和
                System.out.println("计算二维数组brr3中所有数的和:"+sum);
        }

        /*
        1.函数
        A:求两个数据的和。
                这是第一题,我就先理理思路,之后的我就不理思路了。
                思路:
                        首先,函数有结果,结果为两个数的和。所以,就有了返回值类型。
                        第二个,函数需要知道两个数,所以需要两个参数。
        */
        public static int sum(int a,int b){
               
                return a+b;
        }

        /*
        1.函数
                函数的重载,一般是在定义功能相同的函数时,但是参数列表不同
        */
        public static int sum(int a,int b,int c){
                return a+b+c;
        }

        /*
        1.函数
        B:求两个数据的最大值
        */
        public static int getMax(int a,int b){
               
                return a>b?a:b;
        }

        /*
        1.函数
        C:比较两个数是否相等
        */
        public static boolean compare(int a,int b){

                return a==b;
        }

        /*
        1.函数
        A:nn乘法表
        */
        public static void table99(int num){
               
                for(int i = 1;i<=num;i++){
                        for(int j = 1;j<=i;j++){
                                System.out.print(j+"*"+i+"="+j*i+"\t");
                        }
                        System.out.println();
                }
        }

        /*
        2.数组
        数组的遍历
        */
        public static void print(int[] arr){
               
                for(int i = 0;i<arr.length-1;i++){
                        System.out.print(arr[i]+" ");
                }
                System.out.println(arr[arr.length-1]);
        }

        /*
        2.数组
        B:数组获取最值
        */
        public static int getMaxArray(int[] arr){
       
                int max = arr[0];
                for(int i = 1;i<arr.length;i++){
                        if(arr[i]>max){
                                max = arr[i];
                        }
                }
                return max;
        }

        /*
        2.数组
        C:数组的查找
        */
        public static int getIndex(int[] arr,int key){
               
                for(int i = 0;i<arr.length;i++){
                        if(key == arr[i]){
                                return i;
                        }
                }
                return -1;
        }

        /*
        3.二维数组
        二维数组的遍历
        */
        public static void printTD(int[][] arr){
               
                for(int i = 0;i<arr.length;i++){
                        for(int j = 0;j<arr[i].length;j++){
                                System.out.print(arr[i][j]+"\t");
                        }
                        System.out.println();
                }
        }

        /*
        3.二维数组
        二维数组的遍历求和
        */
        public static int sumTD(int[][] arr){
               
                int sum = 0;
                for(int i = 0;i<arr.length;i++){
                        for(int j = 0;j<arr[i].length;j++){
                                sum += arr[i][j];
                        }
                }
                return sum;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马