一、方法(函数)

作用:提高代码的重复利用率

语法:public static 返回值类型 方法名(参数){}

返回值类型:
1、无返回值 使用关键字void
2、有返回值 写任意一种数据类型(int,double,short,long,float)等
在方法体最后面写 return 字面值

方法名字:第一个单词全小写,第二个单词首字母大写 如getName

参数的写法
变量的声明,不赋值,多个可以用逗号隔开,每个参数前面都要写类型
如 (int b,int a,double x)
注意:方法体中不能再写方法! 但方法中可以调用别的方法

方法的书写
1、无返回值 无参数 public static void fun1(){}
2、无返回值 有参数 public static void fun2(int a){}
3、有返回值 无参数 public static int fun3(){return 0}
4、有返回值 有参数 public static int fun4(int a){return 0}

二、函数的调用

方法和main方法是并列的,方法不能写在main方法里面
直接在main方法里写方法的名字即可,有返回值的函数可以声明一个类型接收,如 int a=fun4(int a)

三、参数和返回值

参数把方法外部的数据传递到方法内部,满足方法内部的运算
参数是特殊的局部变量,只在方法内部存在
参数可以让方法更加灵活

返回值是方法外部的需要

 四、使用方法进行练习

(1)将两个变量的值进行交换   用方法进行交换

public static void main(String[] args) {
        int a=10,b=20;
        Exchange(a,b);
        System.out.println(a+"\t"+b);
        //在方法中交换了,但在main方法中没有交换    因为方法里的参数是形参,形参只能在方法中进行操作,而不会操作到真实的参数
    }
Exchange(int x,int y){
        int m;
        m=x;
        x=y;
        y=m;
        System.out.printl
        n(x+"\t"+y);
    }


(2)从键盘接收一个数字,判断该数字的正负。

public static void main(String[] args) {
        System.out.println("请输入一个数判断正负:");
        Scanner sc=new Scanner(System.in);
        Judge1(sc.nextInt());
        System.out.println("请输入一个数判断奇偶:");
        Judge2(sc.nextInt());
    }public static void Judge1(int x){
        if(x>0){
            System.out.println("正数");
        }
        if(x<0){
            System.out.println("负数");
        }
        if(x==0){
            System.out.println("零");
        }
    }
Judge2(int x){
        if(x%2==0){
            System.out.println("偶数");
        }
        if(x%2!=0){
            System.out.println("奇数");
        }
    }

(3)打车起步价8元(3KM以内)

超过3KM,超出的每公里1.2元
 超过5KM,超出的每公里1.5元
请在键盘上接收公里数,得出总价。
不超过一公里的按一公里算
public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入您的公里数:");
        getExpense(sc.nextDouble());
    }
getExpense(double x){
        int a=(int)x;
        if(x%a!=0){
            a++;
        }
        double price;
        if(a<=3){
            price=8;
            System.out.println("车费"+price+"元");
        }
        if(a>3&&a<=5){
            price=8+(a-3)*1.2;
            System.out.println("车费"+price+"元");
        }
        if(a>5){
            price=8+2*1.2+(a-5)*1.5;
            System.out.println("车费"+price+"元");
        }
    }


(4)篮球从n 米高的地方掉下来,每次弹起的高度是原来的30%,经过几次弹起,篮球的高度是0.1 米。

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入高度(米):");
        int a=time(sc.nextDouble());
        System.out.println(a+"次");
    }
time(double x){
        int m=0;
        while(x>0.1){
            m++;
            x*=0.3;
        }
        return m;
    }

(5)用方法输出一个n行的“*”菱形

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入行数:");
        rhombic(sc.nextInt());
    }
rhombic(int x){
        for(int i=1;i<=x;i++){
            for(int j=1;j<=x-i;j++){
                System.out.print(" ");
            }
            for(int a=1;a<=2*i-1;a++){
                System.out.print("*");
            }
            System.out.println();
        }
        for(int i=1;i<=x-1;i++){
            for(int j=1;j<=i;j++){
                System.out.print(" ");
            }
            for(int j=1;j<=(x-1-i)*2+1;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }