重复主要方法

时间:2016-10-23 11:09:38

标签: java main-method

我是java和这个论坛的新手。我为一个简单的计算器写了一个代码。它正在发挥作用。但是,如果我(让我们说)把“=”代替“(+, - ,*,/)”,我怎么能重复主要方法呢?我应该使用循环还是其他东西?提前谢谢!

import java.util.Scanner;

public class SimCal {

    public static int add(int a, int b) {
        return a + b;
    }

    public static int sub(int a, int b) {
        return a - b;
    }

    public static int mul(int a, int b) {
        return a * b;
    }

    public static int div(int a, int b) {
        return a / b;
    }

    public static void main(String[] args) {

        Scanner scan1 = new Scanner(System.in);
        System.out.println("What do you want to do (+, -, *, /)? ");
        String input1 = scan1.nextLine();

        if (!input1.equals("+") && !input1.equals("-") && !input1.equals("*") && !input1.equals("/")) { // if wrong input given
            System.out.println("You must Enter a valid operator");
        } else {
            Scanner scan2 = new Scanner(System.in);
            System.out.println("Enter first number: ");
            int input2 = scan2.nextInt();

            Scanner scan3 = new Scanner(System.in);
            System.out.println("Enter second number: ");
            int input3 = scan3.nextInt();

            if (input1.equals("+")) {
                System.out.println(add(input2, input3));
            } else if (input1.equals("/")) {
                System.out.println(div(input2, input3));
            } else if (input1.equals("-")) {
                System.out.println(sub(input2, input3));
            } else {
                System.out.println(mul(input2, input3));
            }
            scan1.close();
            scan2.close();
            scan3.close();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我对你的要求有点不确定,但我明白你想要能够重复计算器而不必再次运行它。这可以通过使用布尔和while块来实现。

以下是一个例子:

y_list= [1.0, 0.5669650111879195]
i=0
while all(y <= 1 for y in y_list):
    i+=1
    if all(y<= 1 for y in y_list):
        break
    print(i)

我希望这会有所帮助。就像Andy Turner提到的那样,你应该尝试不使用多个扫描仪。

编辑:我忘了关闭2台扫描仪。此外,如Saurav Sahu所述,切换案例可能是更好的方法。