Java小白学点东西(基础篇)(5)

本文深入浅出地讲解了方法的使用、无数组的重要性、以及如何在开发中高效利用数组和循环。通过实例演示了不同类型的函数和数组操作,包括无返回值、有返回值、参数传递,以及数组的声明、赋值和遍历。同时介绍了关键的编程概念如break、continue和练习题,帮助提升编程技能。

1.方法 (也可以叫函数)

1.1为什么要使用方法

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

会导致:

代码臃肿

阅读性差

维护性极差

​举个栗子

public class Demo1 {
   //为什么使用方法
   public static void main(String[] args) {
       //打印10遍hello1
       for (int i = 0; i < 10; i++) {
           System.out.println("hello1");
       }
       System.out.println("===============");
       for (int i = 0; i < 10; i++) {
           System.out.println("hello1");
       }
       System.out.println("---------------");
       for (int i = 0; i < 10; i++) {
           System.out.println("hello1");
       }
       System.out.println("+++++++++");
       for (int i = 0; i < 10; i++) {
           System.out.println("hello1");
        //等等等等,要输入十遍sout,确实很麻烦把
       }
   }
}


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

public  static  void main(String[] args){}
main方法是java内置的方法(java自己封装好的只需要调用就行了)主函数,程序的一个入口
    public static:之后会给大家说说,本文就不再提了
   void:返回值的类型,void没有任何返回值的
   main:是方法的名字。如果咱们自己定义的话,能和main起名字一样吗?不能
       需要自己起方法的名字
   ():是咱们方法后面紧跟着的一个符号
   String[] args:形式参数  形参
   {}:方法体,大括号里面方法功能代码

1.3无参数无返回值的方法

比葫芦画瓢

语法格式:

public static void 方法名字() {}

【注意事项】:

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

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

3.方法名字();即可

4.方法名字的命名和变量的命名一样

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

public class Demo3 {
    public static void main(String[] args) {
        //打印20遍的hello  黄焖酥肉
        printHelloHms();
        System.out.println("===========");
        //打印20遍的hello  黄焖酥肉
        printHelloHms();
        System.out.println("------------");
        //打印20遍的hello  黄焖酥肉
        printHelloHms();
        System.out.println("++++++++++++");
        //打印20遍的hello  黄焖酥肉
        printHelloHms();
    }
    public  static  void printHelloHms(){
        for (int i = 0; i < 20; i++) {
            System.out.println("hello 黄焖酥肉");
        }
    }
}
​

1.4有参数无返回值的方法

语法格式:

public static void 方法名字(数据类型 参数名字, 数据类型 参数名字 .....) {}

public class Demo5 {
    public static void main(String[] args) {
        //3.2和3.4是实际参数,真实的参数
        //把3.2赋值给了a
        //把3.4赋值给了num2
        printSum(3.2, 3.4);
        printsum1(3,1,8);
        printStr("hehe", "da");
    }
​
    /**
     * 打印两个 double类型的数据的和
     * @param a  形式参数
     * @param num2 形式参数
     */
    public static void printSum(double a, double num2) {
        System.out.println(a + num2);
    }
    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 返回的意思

}

关键字:return 返回的意思

public class Demo6 {
    public static void main(String[] args) {
        int a = giveFive();
        int c = a + 7;
        System.out.println(c);
        giveSix();//直接打印了6
        String str1 = giveStr();
        System.out.println(str1);
    }
​
    /**
     * 声明的一个有返回值无参数的方法
     * @return
     */
    public static int giveFive() {
        return 5;
    }
​
    /**
     * 无返回值的无参数的方法
     */
    public static void giveSix() {
        System.out.println(6);
    }
​
    public static String giveStr() {
        return "回眸一笑百媚生";
    }
}

1.6有参数有返回值的方法

语法格式:

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

}

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;
    }
}
​

总结:

1.无参数无返回值的:public  static void sum(){}
2.有参数无返回值的:public static void sum(int a){}
3.无参数有返回值的:public static 数据类型 sum(){ return}
4.有参数有返回值的:public static 数据类型 sum(参数类型 形式参数){return}

【注意事项】:

1.方法名字的命名

见名知意

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

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

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

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

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

3.关于有返回值的方法

使用关键字return

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

2.break关键字

字面意思:

打破,终止,打断

代码终止的效果:

例如大家都知道swicth-case 中,break;跳出

对于循环,跳出当前循环

public class Demo8 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            /*
            * i = 0  0<10  true  打印0 i++
            * i = 1 1<10  true  打印1  i++
            * ....
            * i = 6 6<10 true  6==6 true  打印循环终止
            * break;终止代码,循环就结束了
            * */
            if (i == 6) {
                System.out.println("循环终止");
                break;
            }
            System.out.println(i);
        }
    }
}

3.continue关键字

字面意思:

继续

代码中:

结束本次循环,进入到下一次循环

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  continue 往下不执行,但是还回到for i++
            * i= 1  1<10 true  1%5==0 false   打印1
            * .。。
            * i = 5 5<10 true  5%5==0 true
            * */
            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.封装一个方法,判断一个数是否是正数还是负数

public class Demo10 {
    public static void main(String[] args) {
        int max = getMax(4, 3);
        System.out.println(max);
        float min = getMin(3.4F, 5.6F);
        System.out.println(min);
        boolean a = isUpper('F');
        System.out.println(a);
        boolean number = isNumber('7');
        System.out.println(number);//true
        boolean q = isEnglish('q');
        System.out.println(q);//true
        daoXu(56789);
        int cube = cube(4);
        System.out.println(cube);//64
        boolean year = isYear(2078);
        System.out.println(year);
        printTri(80);
​
​
    }
    //找出两个int类型数据的最大值
    public static int getMax (int num1, int num2) {
//        if (num1 > num2) {
//            return num1;
//        }else {
//            return num2;
//        }
        //使用三目运算符的写法
        return num1>num2 ? num1:num2;
    }
​
    /**
     * 求两个float类型数据的最小值
     * @param num1   float类型的数据  第一个参数
     * @param num2   float类型的数据  第二个参数
     * @return  返回值是最小值   float
     */
    public static float getMin(float num1, float num2) {
        //return num1 < num2 ? num1: num2;
        if (num1 < num2) {
            return num1;
        } else {
            return num2;
​
        }
    }
    //判断一个字符是否是大写字符
    public static boolean isUpper(char ch1) {
        //return ch1 >= 'A' && ch1 <= 'Z';
        //ASCII码的表现形式来判断是否是大写的英文字符
        return ch1 >= 65 && ch1 <= 90;
    }
​
    /**
     * 判断一个字符是否是数字字符
     * @param ch1
     * @return
     */
    public static boolean isNumber(char ch1) {
        //return ch1 >= '0' && ch1 <= '9';
        return ch1 >= 48 && ch1 <= 57;
    }
​
    //判断一个字符是否是英文字符
    public static boolean isEnglish(char ch1) {
        return (ch1 >= 'A' && ch1 <= 'Z') || (ch1 >= 'a' && ch1 <= 'z');
    }
    //将一个这整数倒叙打印
    public static void daoXu (int num) {
        while (num > 0) {
            System.out.println(num % 10);
            num /= 10;
        }
    }
    //计算一个数的立方
    public static int cube(int num) {
          return num * num * num;
    }
    //判断是否是闰年
    public  static boolean isYear(int year) {
       if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 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, 值4};

public class Demo13 {
    public static void main(String[] args) {
        //第一种数组的声明方式
        char[] chs = new char[5];
        chs[0] = '我';
        chs[1] = '是';
        chs[2] = '很';
​
        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);
​
        //第二种数组声明方式
        boolean[] bools = {true, false, true, false, false, true};
        String[] names = {"景天", "雨果"};
​
    }
}
​

5.4数组的使用

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

public class Demo14 {
    public static void main(String[] args) {
        //这个doubles数组变量已经有值了
        double[] doubles = {21.2,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数组和循环不得不说的秘密

数组和循环是有关联的

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

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

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

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

5.6数组作为方法的参数

语法格式:

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

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

public class Demo16 {
    public static void main(String[] args) {
        //1.声明一个空的数组
        int[] arr = new int[10];
        //2.需要借助于setIntArray 给这个空数组进行赋值
        setIntArray(arr);
        //3.arr就已经有值了
        //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;
//            array[0] = 3;
//            array[1] = 4;
        }
    }
}
​

扩展知识点:

三目运算符:

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

语法格式:

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

举个栗子:返回两个数的最大值

return num1>num2 ? num1:num2;

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

就返回变量2。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宇智波波奶茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值