方法和数组

讲师:王博

Id:10.8.159.99

第一阶段第二周

今日内容

  1. 方法(函数)
  2. Break和continue的关键字
  3. 数组
  4. 大量的方法和数组的练习题
  1. 方法(函数)

1.1为什么要使用方法

开发中会遇到很多重复的功能,循环已经满足不了我们的需求

会导致:

·代码臃肿

·阅读性差

·维护性极差

1.2其实咱们已经见过方法了

Public static void main (String [] args){}

Main 方法是java内置的方法(java自己封装好的,只需要调用就行了)它是主方法,也叫主函数,是程序的一个入口

Public static:

Void:返回值类型,void没有任何返回值的

Main:方法名,如果自己定义的话,能和main起名字一样吗?不能

需要自己起方法的名字

():是方法后面紧跟着的一个符号

String [] args:参数,形式参数

{}:方法体,大括号里面放的是功能代码

1.3无参数,无返回值的方法

比葫芦画瓢

语法格式

Public static void 方法名(){}

注意事项:

·方法的声明必须写在主函数外面

·方法的调用一定要放在主函数中

·方法名字();即可

·方法命名和变量命名一样

·方法是条狗,哪里需要哪里吼,方法不调用,不执行

package www.liujinghe.com;

public class Demo4 {
    public static void main(String[] args) {
        System.out.println("你好,世界");
        //打印十次空间尽头
        printKj();
        System.out.println("晚上好");
        //打印十次空间尽头
        printKj();
    }
    public static void printKj(){
        System.out.println("打印十次空间尽头");
        for (int i = 0; i < 10; i++) {
            System.out.println((i+1)+".空间尽头");
        }
    }

}

1.4有参数无返回值的方法

语法格式

Public static void (数据类型 参数名,数据类型 参数名...){}

package www.liujinghe.com;

public class Demo5 {
    public static void main(String[] args) {
        //3.23.4是实参,真实的参数
        /**
         * 3.2赋值给了num1
         * 3.4赋值给了num2
         */
        printSum(3.2,3.4);
        //三个int类型的数据和
        printSum1(4,5,4);
        //两个字符串
        printStr("你好","世界");
    }
    /**
     * 打印两个double类型的数据的和
     * num1num2是形参,形式上的参数
     * @param num1
     * @param num2
     */
    public static void printSum(double num1, double num2) {
        System.out.println("两个数的和为:" + (num1 + num2));
    }
    //打印三个int类型的数据和
    public static void printSum1(int a,int b,int c){
        System.out.println("三个数的和为:"+(a+b+c));
    }
    //两个字符串
    public static void printStr(String str1,String str2){
        System.out.println(str1+str2);
    }
}

1.5无参数有返回值的方法

语法格式

Public static 返回值数据类型 方法名(){

Return 返回值;

}

package www.liujinghe.com;

public class Demo6 {
    public static void main(String[] args) {
        int a = giveFive();
        int c = a+7;
        System.out.println(c);
        geiveSix();//直接打印了6
        String str = giveStr();
        System.out.println(str);
    }

    /**
     * 声明了一个有返回值无参数的方法
     * @return
     */
    public static int  giveFive(){
        return 9;
    }

    /**
     * 无返回值无参数的方法
     */
    public static void geiveSix(){
        System.out.println(6);
    }
    /**
     *有返回值无参数的方法
     */
    public static String giveStr(){
        return "空间尽头";
    }
}

1.6有参数有返回值的方法

语法格式

Public static 数据类型 方法名(数据类型 形式参数,数据类型 形式参数...){

Return 返回值类型;

}

package www.liujinghe.com;

public class Demo7 {
    public static void main(String[] args) {
        int sum = sum(1,2);
        System.out.println(sum);
    }
    //求两个int类型的和
    public static int sum(int a,int b){
        return a+b;
    }
}

总结:

无参数无返回值的:public static void 方法名(){}

无参数有返回值的:public static 数据类型 方法名(){return}

有参数无返回值的:public static void 方法名(数据类型 形参){}

有参数有返回值的:public static 数据类型 方法名(数据类型 形参){return}

注意事项:

1.方法名字的命名

·见名知意

·方法在调用的时候是通过方法的名字来调用的,在main主函数中调用的

·严格使用小驼峰的命名方式

2形式参数(形参)和实际参数(实参)

·形式参数:只是形式而已,参数的名字可以随便

·实际参数:是真真切切的值

3关于返回值的方法

·使用关键字:return

·返回的时候再main主函数中需要接收,接收以后可以进行下一步的操作

2.break关键字

字面意思:终止

代码终止的效果

Switch-case跳出

针对于循环,跳出循环

3.continue关键字

字面意思:继续

代码中:结束本次循环,进入下一次循环

package www.liujinghe.com;

public class Demo9 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            /**
             * i=0 0<10 true 0%5=0 true 打印代码,contince i++
             * i=1 1<0 ture 1%5=0 false 打印1 i++
             */
            if(i%5 == 0){
                System.out.println("结束本次循环,进入下一次循环");
                continue;//代码走到这个地方不再向下执行,回到for
            }
            System.out.println(i);
        }
    }
}

4方法的练习题

1封装一个方法,找出两个int类型数据中的最大值

2封装一个方法,找出两个float类型数据中的最小值

3封装一个方法,判断一个字符是否是大写字符

4封装一个方法,判断一个字符是否是数字字符

5封装一个方法,判断一个字符是否是英文字符

6封装一个方法,将一个整数倒序打印

7封装一个方法,计算一个数的立方

8封装一个方法,判断一个年份是否是闰年平年

9封装一个方法,判断一个数是否是整数还是负数

package www.liujinghe.com;

public class Demo10 {
    public static void main(String[] args) {
        System.out.println("1封装一个方法,找出两个int类型数据中的最大值");
        int max = getMax(1, 3);
        System.out.println(max);
        System.out.println("2封装一个方法,找出两个float类型数据中的最小值");
        float min = getMin(12.34f, 25.354f);
        System.out.println(min);
        System.out.println("3封装一个方法,判断一个字符是否是大写字符");
        boolean f = isUpper('F');
        System.out.println(f);
        System.out.println("4封装一个方法,判断一个字符是否是数字字符");
        boolean number = isNumber('9');
        System.out.println(number);
        System.out.println("封装一个方法,判断一个字符是否是英文字符");
        boolean english = isEnglish('5');
        System.out.println(english);
        System.out.println("6封装一个方法,将一个整数倒序打印");
        reverse(12345);
        System.out.println("封装一个方法,计算一个数的立方");
        int cube = cube(4);
        System.out.println(cube);
        System.out.println("封装一个方法,判断一个年份是否是闰年平年");
        boolean year = isYear(2078);
        System.out.println(year);
        System.out.println("打印直角三角形");
        printTri(50);

    }
    //1封装一个方法,找出两个int类型数据中的最大值
    public static int getMax(int num1,int num2){
//        if(num1>num2){
//            return num1;
//        }else {
//            return num2;
//        }
        return num1>num2?num1:num2;
    }

    //2封装一个方法,找出两个float类型数据中的最小值
    public static float getMin(float num1,float num2){
        //return num1<num2?num1:num2;
        if(num1<num2){
            return num1;
        }else{
            return num2;
        }
    }

    //3封装一个方法,判断一个字符是否是大写字符
    public static boolean isUpper(char ch1){
//        return ch1 >= 'A' && ch1 <= 'Z';
        //ASCII码的表现形式来判断是否是大写的英文字符
        return ch1 >= 65 && ch1 <= 90;
    }
    //4封装一个方法,判断一个字符是否是数字字符
    public static boolean isNumber(char c){
        //return c >='0' && c <= '9';
        return c >= 48 && c <= 57;
    }
    //5封装一个方法,判断一个字符是否是英文字符
    public static boolean isEnglish(char c){
        return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
    }
    //6封装一个方法,将一个整数倒序打印
    public static void reverse(int num){//反转
        while (num != 0){
            System.out.print(num%10);
            num = num/10;
        }
    }
    //7封装一个方法,计算一个数的立方
    public static int cube(int num){
        return num*num*num;
    }
    //8封装一个方法,判断一个年份是否是闰年平年
    public static boolean isYear(int year){
        if(year % 400 ==0 || (year %4 ==0 && year % 100 != 0)){
            return true;
        }else{
            return false;
        }
    }
    //打印直角三角形
    public static void printTri(int i){
        for (int k = 1; k < i; k++) {
            for (int z = 1; z < k; z++) {
                System.out.print("*");
            }
            System.out.println();
        }

    }

}

5数组【重点】

5.1开发中为什么要有数组

如果开发中出现了大量的同一类型的数据的时候,如果按照变量命名的声明方式,显然会出现多个变量。数组就是声明一个变量名字,然后可以存多个数据的

5.2生活中的数组

图书馆:

图书的归纳就是数组的一种思想

会对书进行分类,进行编号

《java从入门到精通》,《mysql的详解》,《spring解密》,《springboot详解》

T-1234-0 T-1234-1 T-1234-2 T-1234-3

这个书架就是数组的一种思想

5.3java中如何定义数组

变量声明:

数据类型 变量名 = 初始化值

数组声明的语法格式:

第一种声明方式:声明的是一个空数组,容器

数据类型 [] 数组名 = new 数据类型[容量];

第二种声明方式:直接对数组进行赋值

数据类型 [] 数组名 = {值1,值2,值3....};

package www.liujinghe.com;

public class Demo13 {
    public static void main(String[] args) {
        //第一种数组的声明方式
        char [] chs = new char[5];
        chs[0] = '';
        chs[1] = '';
        chs[2] = '';
        chs[3] = '';
        chs[4] = '';
        System.out.println(chs);//打印的不是内存地址,是值
        int [] ints =new int[3];
        ints[0] = 38;
        ints[1] = 57;
        ints[2] = 67;
        System.out.println(ints);//打印的是内存地址
        String [] strs = new String[3];
        strs[0] = "你是";
        strs[1] = "我是";
        strs[2] = "他是";
        System.out.println(strs);//除了char,其他的打印的都是内存地址
        //第二种声明方式
        boolean [] bools = {true,false,true,false,false};
        String [] names = {"张三","李四","王二","麻子"};
    }
}

5.4数组的使用

1声明 2赋值 3把数据取出来

package www.liujinghe.com;

public class Demo14 {
    public static void main(String[] args) {
        //这个doubles数组变量已经有值了
        double [] doubles = {21.1,23.4,78.9};
        System.out.println(doubles);//打印的是内存地址
        System.out.println(doubles[0]);//通过索引把值取出来
        System.out.println(doubles[1]);
        System.out.println(doubles[2]);
//        System.out.println(doubles[3]);
        System.out.println(doubles.length);//数组的长度
    }
}

5.5数组和循环不得不说的秘密

数组和循环是有关联的

如果碰到数组就尽可能的使用循环进行取数据(遍历)

取值一般借助于循环取值的

是因为数组的索引(下标)是有规律的

package www.liujinghe.com;

public class Demo15 {
    public static void main(String[] args) {
        int[] arr = {521, 4399, 1314, 520, 360, 12315, 110, 120, 119};
        System.out.println(arr.length);//数组长度
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        String [] str ={"盖伦", "亚索", "提莫", "奥巴马"};
        for (int i = 0; i < str.length; i++) {
            System.out.println(str[i]);
        }
    }
}

5.6数组作为方法的参数

语法格式

 Public static void main (String [] args){}

需求:给一个int类型数据的数组进行赋值

package www.liujinghe.com;

public class Demo16 {
    public static void main(String[] args) {
        //1声明一个空的数组
        int [] arr = new int[10];
        //2截止setIntArray给这个空数组进行赋值
        setIntArray(arr);
        //3arr就已经有值了
        //4取值
        System.out.println(arr[0]);
    }
    public static void setIntArray(int [] array){
        //array是一个空的数组
        //赋值
        for (int i = 0; i < array.length; i++) {
            array[i] = i+3;
        }
    }
}

作业:

1定义一个方法,找出数组中最大值的索引

2定义一个方法,找到数组中最小值的索引

3定义一个方法,找出指定数据的索引

扩展知识点

三目运算符:

三目运算符和if-else功能一模一样

语法格式

表达式1?变量1:变量2;

执行流程:判断表达式是否为true,如果表达式为true,就返回变量1,如果表达式为false,就返回变量2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彼岸迷离

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值