方法

方法

方法是什么

package method;

public class Demo01 {
    public static void main(String[] args) {
        int sum = add(1, 2);
        System.out.println(sum);
        text();
    }
    //加法
    public static int add(int a,int b){
        return a+b;
    }
    public static void text(){
        int a =0;
        for (int i = 0; i <=1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
                a++;
                if (a==3){
                    System.out.print("\n");
                    a=0;
                }
            }
        }

    }
}

疑难点

什么时候用void,什么时候不用void

方法的定义与调用

方法的定义


public class Demo01 {
    public static void main(String[] args) {
        int sum = add(1, 2); //1,2 实际参数
        System.out.println(sum);
    }
    
    public static int add(int a,int b){  //public  static修饰符   int方法返回值   add方法名字   a,b 形式参数
        return a+b;
    }   //整个add方法叫做方法体,它的功能是两个整数的加法

方法的调用

public class Demo02 {
    public static void main(String[] args) {
        int max = max(10, 10);
        System.out.println(max);
    }
    public static int max(int num1,int num2){
        int result=0;//初始化
        if (num1==num2){
         System.out.println("num1=num2");
            return 0;  //终止方法
        }
        if (num1>num2){
            result=num1;
        }else{
            result=num2;
        }
        return result;
    }
}

方法的重载

public static void main(String[] args) {
    int sum = add(1, 2);
    System.out.println(sum);
}
//加法  //所有的方法名称都是add
public static int add(int a,int b){  //返回值为int,参数个数为2,参数名称a,b
    return a+b;
}
public static double add(double a,double b){  //返回值类型为double
        return a+b;
    }
    public static int add(int a,int b,int c){  //参数个数为3
        return a+b+c;
    }
    public static int add(int aaa,int bb){   //形式参数不一样 aaa,bb
        return aaa+bb;
    }

命令行传递参数

public class Demo03 {
    public static void main(String[] args) {
        for (int i=0;i< args.length;i++){   //args.length数组长度 
            System.out.println("args["+i+"]"+args[i]);
        }
    }
}

可变参数

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1,2,3,4,5,6);
        printMax(34,3,3,2,56.5);
        printMax(new double[]{1,2,3});
    }
    public void test(int x,int y,int...i){
    System.out.println(i[0])
    }  //test方法中只有一个可变参数int...i,并且在任何普通参数的后面
    public static void printMax(double...numbers){
        if (numbers.length==0){
            System.out.println("No argument passed");
            return;
        }
        double result = numbers[0];

        //排序
        for (int i =1;i<numbers.length;i++){
            if (numbers[i]>result){
                result = numbers[i];
            }
        }
        System.out.println("The max value is"+result);
    }
}

递归

注:能不用递归就不用递归

public class Demo05 {
    public static void main(String[] args) {
        Demo05 test = new Demo05();
        test.test();
    }
    public void test(){
        test();
    }
}//我调我自己  栈溢出异常

5的阶乘

public class Demo06 {
    public static void main(String[] args) {
        System.out.println(f(5));
    }
    //2 2  *  f(1)
    //3 3 * f(2)
    public static int f(int n){
        if (n==1){
            return 1;
        }else{
            return n*f(n-1);
        }
    }
}

小练

package method;
import com.sun.org.apache.bcel.internal.generic.LDIV;
import java.util.Scanner;
import static java.util.Calendar.AM;
public class Text01 {
    public static void main(String[] args) {
        Text01 text01=new Text01();
        text01.calc();
    }
    public void calc(){
        String d;
        for (int i=1;i>0;i++) {
            Scanner scanner = new Scanner(System.in);
            double a = scanner.nextDouble();
            String b = scanner.next();
            double c = scanner.nextDouble();
            d = b;
            switch (d) {
                case "+":
                    System.out.println(a + "+" + c + "=" + (a + c));
                    break;
                case "-":
                    System.out.println(a + "-" + c + "=" + (a - c));
                    break;
                case "*":
                    System.out.println(a + "*" + c + "=" + (a * c));
                    break;
                case "/":
                    System.out.println(a + "/" + c + "=" + (a / c));
                    break;
            }
            i++;
        }
    }
}

缺点:如果输错,直接报错,结束运行

posted @ 2021-05-11 21:40  HT625  阅读(46)  评论(0)    收藏  举报