递归
- 递归结构包括两个部分:
1、递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
2、递归体:什么时候需要调用自身方法
阶乘代码:
public class Demo06 {
public static void main(String[] args) {
int result=f(4);
System.out.println(result);
}
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}
【练习】
写一个计算器,要求实现加减乘除功能,并能够循环接收新的数据,通过用户交互实现。
思路:
1、写四个方法,加减乘除
2、循环+switch
3、传递需要的数据
4、输出结果
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
while (true){
System.out.println("请输入运算符号(+,-,*,/):");
Scanner scanner = new Scanner(System.in);
String cal=scanner.next();
System.out.println("请输入需要计算的两个数字:");
Scanner scanner1 = new Scanner(System.in);
double a=scanner1.nextDouble();
Scanner scanner2 = new Scanner(System.in);
double b=scanner2.nextDouble();
switch (cal){
case "+":
System.out.println(add(a,b));
break;
case "-":
System.out.println(sub(a,b));
break;
case "*":
System.out.println(mul(a,b));
break;
case "/":
System.out.println(div(a,b));
break;
default:
System.out.println("重新输入!");
break;
}
}
}
public static double add(double a,double b){
return a+b;
}
public static double sub(double a,double b){
return a-b;
}
public static double mul(double a,double b){
return a*b;
}
public static double div(double a,double b){
return a/b;
}
}