用户输入创建java程序

时间:2013-03-21 17:17:57

标签: java

我尝试过创建代码来解决二次方程式,但我只是成功地为特定公式创建了代码。有什么方法可以通过用户输入提供变量abc然后解决方案打印出来吗?该程序还拒绝在命令提示符下运行,但可以在eclipse中运行。可能是什么问题?

在这里。

public class Equationsolver {

    public static void main(String[] args) {
    double a, b, c;
    a = 2;
    b = 6;
    c = 4;

    double disc = Math.pow(b,2) - 4*a*c;
    double soln1 = (-b + Math.sqrt(disc)) / (2*a) ;
    double soln2 = (-b - Math.sqrt(disc)) / (2*a);
    if (disc >= 0) {
        System.out.println("soln1 = " + soln1);
        System.out.println("soln2 = " + soln2);
    }else{
        System.out.println("equation has no real roots");
    }

    }

}

2 个答案:

答案 0 :(得分:5)

获取用户输入的一种可能性是使用参数String [] argsString [] args包含在执行程序时传递给程序的值,如java -jar program.jar arg1 arg2 arg3

在您的情况下,您需要检查用户是否将3个参数传递给程序,如果是,则为变量分配值。

以下是一些可能有用的代码,请注意我没有添加验证,您需要进行更多验证以确保清理用户输入:

public class Equationsolver {

    public static void main(String[] args) {
    double a, b, c;
    a = Double.parseDouble(args[0]); //Here it will get the first argument pass to the program
    b = Double.parseDouble(args[1]); 
    c = Double.parseDouble(args[2]);

    double disc = Math.pow(b,2) - 4*a*c;
    double soln1 = (-b + Math.sqrt(disc)) / (2*a) ;
    double soln2 = (-b - Math.sqrt(disc)) / (2*a);
    if (disc >= 0) {
        System.out.println("soln1 = " + soln1);
        System.out.println("soln2 = " + soln2);
    }else{
        System.out.println("equation has no real roots");
    }

    }

}

编辑:您可能需要更改代码以适应现在a bc可能与您的想法不同的事实。

答案 1 :(得分:3)

您也可以通过以下方式从用户那里获取动态输入

Scanner in = new Scanner(System.in);
double a = in.nextDouble();
double b = in.nextDouble();
double c = in.nextDouble();