Java学习Day12
递归(并不是最好的方法,只作为思路)
【例1】求任何数字的阶乘
public class JoJo {
public static void main(String[] args) {
System.out.println(f(3));
}
public static int f(int n) {
if (n == 1){
return 1;
}else{
return n * f(n-1);
}
}
}
方法练习
【例2】写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现
思路推荐:
1.写4个方法:加减乘除
2.利用循环加switch进行用户交互
3.传递需要操作的两个数
4.输出结果
import java.util.Scanner;
public class JoJo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in) ;
scanner.hasNextLine() ;
String Operator = scanner.nextLine();
switch (Operator){
case "+":
Addition( 0,0) ;
break;
case "-":
Subtraction(0,0) ;
break;
case"*":
Multiplication(0,0);
break;
case"/":
Division(0,0);
break;
default:
System.out.println("输入不合法");
}
}
//加法
public static void Addition(int num1,int num2){
int result = 0;
Scanner scanner = new Scanner(System.in);
scanner.hasNextInt() ;
num1 = scanner.nextInt() ;
num2 = scanner.nextInt() ;
result = num1 + num2 ;
System.out.println(result );
scanner.close() ;
}
//减法
public static void Subtraction(int num1,int num2){
int result = 0;
Scanner scanner = new Scanner(System.in);
scanner.hasNextInt() ;
num1 = scanner.nextInt() ;
num2 = scanner.nextInt() ;
result = num1 - num2 ;
System.out.println(result );
scanner.close() ;
}
//乘法
public static void Multiplication(int num1,int num2){
int result = 0;
Scanner scanner = new Scanner(System.in);
scanner.hasNextInt() ;
num1 = scanner.nextInt() ;
num2 = scanner.nextInt() ;
result = num1 * num2 ;
System.out.println(result );
scanner.close() ;
}
//除法
public static void Division(double num1,double num2){
double result = 0;
Scanner scanner = new Scanner(System.in);
scanner.hasNextDouble() ;
num1 = scanner.nextDouble() ;//用double定义num1 num2,若输入整数可以被强制转化
num2 = scanner.nextDouble() ;
result = num1 / num2 ;
System.out.println(result );
scanner.close();
}
}