1.可变参数(不定项参数)
public class Method {
public static void main(String[] args) {
//除了static,第二种调用方式
Method method= new Method(); //new创建类的对象 new一个类返回当前对象,对象类型,对象名
method.test(1,2,5,58,); //通过对象调用方法 对象名.方法名
}
public void test(int x,int...i){ //test方法,形参未知个,传递int类型任意个参数
System.out.println(i[2]); //返回结果 2
}
}
2.递归 能不用就不用,基础小的时候用
调用自己,大问题转换为小问题
public class Method {
//阶乘
public static void main(String[] args) {
System.out.println(f(5)); //返回120 5*4*3*2*1
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1); // n=3时,3*f(2)==3*2*f(1)==3*2*1
}
}
}
边界条件:f(1)
前阶段:f(1)之前,不停调用
返回阶段:n*(n-1)
java是栈机制 ,一层套一层
注:加减乘除
public static void main(String[] args) {
Method test = new Method();
int add = test.add(12,2);
int jian = test.jian(5,5);
double cheng = test.cheng(1,2);
double chu = test.chu(1,2);
System.out.println(add);
System.out.println(jian);
System.out.println(cheng);
System.out.println(chu);
//System.out.println(test.add(15,1));
}
public static int add(int a, int b ){
int c = a+b;
return c;
}
public static int jian(int a, int b ){
int c = a-b;
return c;
}
public static double cheng(double a, double b ){ //乘除法一般double
double c = a * b;
return c;
}
public static double chu(double a, double b ){
double c = a/b;
if(b != 0){
c = a/b;
return c;
}else{
return 0;}
}
}
第二种方法:
public static void main(String[] args) {
Scanner test = new Scanner(System.in);
System.out.println("请输入第一个数字");
double a = test.nextDouble();
System.out.println("请输入运算符: ");
String b = test.next();
System.out.println("请输入第二个数字: ");
double c = test.nextDouble();
switch (b){
case "+":
double add = a+c;
System.out.println(a+"+"+c+"的结果为: "+add);
break;
case "-":
double sub = a-c;
System.out.println(a+"-"+"的结果为: "+sub);
break;
case "*":
double mul = a*c;
System.out.println(a+"*"+c+"的结果为:"+mul);
break;
case "/":
double dev = a/c ;
System.out.println(a+"/"+c+"的结果为:"+dev);
break;
default:
System.out.println("按要求输入运算符");
break;
}
test.close();
}
结 果