0
点赞
收藏
分享

微信扫一扫

day15 命令行传参数 可变参数 递归 计算器练习

RJ_Hwang 2022-02-19 阅读 33

命令行传参数

如何传递参数给main方法实现

package com.ckw.blog.base;

public class demo {
    public static void main(String[] args) {
        //args.length  数组长度
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);

        }
}
}

cmd命令行运行

注意:

##编译的时候可以读取文件编译
javac D:\java日志\javaproject\test\src\com\ckw\blog\base
##运行的时候需要退到src目录,再从包名开始运行类方法
java com.ckw.blog.base.demo

可变参数

  • jdk1.5开始,java支持传递同类型的可变的一种方法
  • 在方法声明中,在制定参数类型后加一个省略号…

注意点:

  1. 一个方法只能指定一个可变参数。
  2. 它必须是最后一个参数,任何参数都需要在它之前声明。
package com.ckw.blog.base;

public class demo02 {
    public static void main(String[] args) {
        test(1,2,3,67,23);

    }public static void test(int u,double... nub){
        //加三个点就是可变参数,但是必须是最后一个参数
        System.out.println(u);
        System.out.println(nub[0]);
        System.out.println(nub[1]);
        System.out.println(nub[2]);
        System.out.println(nub[3]);
    }
}

递归

就是可以方法自己调用自身,用简单的代码方法来实现复杂的算法。

尽量不要用递归就不要用。

StackOverflowError 栈溢出错误

注意点:

  1. 必须有判断终止条件,不然就会陷入死循环
  2. 什么情况需要用递归
package com.ckw.blog.mathod;
//用递归来计算阶乘法
//阶乘就是5*4*3*2*1
public class demo04_digui {
    public static void main(String[] args) {
        System.out.println(hell(5));
    }public static int hell(int n){
        if(n == 1){
            return 1;
        }else {return n*hell(n-1);}
    }
}

其实就是计算到满足条件最远那一层代码,在一层一层计算回来,就像归家一样。所以层层递进,叫递归

栈运算,main方法是最底层。递归就是计算到边界值后,如果边界值超出栈,就会出现栈溢出StackOverflowError的错误。

计算到边界值后就会按原来的方法不断再计算回来。

练习

写4个方法:加减乘除

利用循环+switch进行用户交互

传递需要操作的两个数

输出结果

package com.ckw.blog.base;

import java.util.Scanner;

/*
写4个方法:加减乘除

利用循环+switch进行用户交互

传递需要操作的两个数

输出结果
 */
public class demo_text01 {
    public static void main(String[] args) {
        while (true){
            double a =0;
            double b =0;
            double c =0;
            String idea= "+";
            Scanner scanner = new Scanner(System.in);
            System.out.println("输入第一个数:");
            a = scanner.nextDouble();
            System.out.println("输入第二个数:");
            b =scanner.nextDouble();
            System.out.println("输入方法:");
            idea = scanner.next();
            switch (idea){
                case "+":c = a+b;
                break;
                case "-":c = a-b;
                break;
                case "*":c = a*b;
                break;
                case "/":c = a/b;
                    break;
                default:
                    System.out.println("未知输入");
            }System.out.println(c);
        }
    }
}

举报

相关推荐

0 条评论