今天进行递归,计算器实现,可变参量认识
在程序运行时传递消息,要靠传递命令行参数给main()函数实现
package scanner;
?
public class 运行时参入 {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("args["+ i + "]:"+args[i]);
}
}
}
调用cmd输出输入的内容
可变参数
在方法声明中,在指定参数类型后加一个省略号(...)
注意:一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在他之前声明
package scanner;
?
public class 运行时参入 {
public static void main(String[] args) {
printMax(2, 3, 4.33,1);
printMax(new double[]{2,3,4});
}
?
public static void printMax(double... numbers) {
if(numbers.length == 0){
System.out.println("no argument passed");
return;
}
?
double result =numbers[0];
for (int i = 0; i < numbers.length; i++) {
if (numbers[i]>result){
result =numbers[i];
}
}
System.out.println("The max value is"+result);
}
}
递归
自己调用自己
计算乘阶小范围的乘阶调用,java使用的是栈,如果计算5!
使用5个栈,非常占内存,如果大数据的递归,用其他方法,
package scanner;
?
public class 递归 {
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if(n ==1){
return 1;
}else{
return n*f(n-1);
}
}
}
if(n==1){
return 1;
}else{
return n*f(n:n-1)
}
做一个计算器
写四个方法:加减乘除 利用循环+switch进行用户交互 传递需要操作的两个数 输出结果
我用if语句写出来
package computer;
?
import java.util.Scanner;
?
public class computer {
public static void main(String[] args) {
System.out.println("输入第一个要输入的数");
Scanner scanner=new Scanner(System.in);
int a= scanner.nextInt();
System.out.println("输入第二个要输入的数");
int b= scanner.nextInt();
System.out.println("求和输入1,求减输入2,求乘输入3,求除输入4");
int result= scanner.nextInt();
if (result==1) {
System.out.println("和为:" + (a + b));
}
else if(result==2) {
System.out.println("减为:" + (a - b));
}
else if(result==3) {
System.out.println("乘为:" + (a * b));
}
else if(result==4){
System.out.println("除为:"+(a/b));
}
scanner.close();
}
}
可以计算两位数的加减乘除