今天进行递归,计算器实现,可变参量认识


命令行传参

在程序运行时传递消息,要靠传递命令行参数给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();
  }
}

可以计算两位数的加减乘除

 

相关