使扫描仪识别阶乘的问题

时间:2020-04-08 15:06:25

标签: java int double java.util.scanner calculator

我正在构建一个计算器,要求用户输入输入ab。然后,用户获得一个由数字1-6组成的菜单,该菜单允许他们加,减,乘,除,获取阶乘并退出以重置循环。我想知道扫描仪是否有一种方法可以将用户输入识别为要加或减的阶乘。例如,如果输入为2! + 3!,则结果应为8。如何使程序识别以!作为阶乘的整数。下面是我的代码:

import java.util.Scanner;

public class Calculator {   
    public static void main(String[]args)   { 
        int m, n, opt, add, sub, mul,fact;

        double div;
        Scanner s = new Scanner(System.in); 
        System.out.print("Enter first number:");
        m = s.nextInt();
        System.out.print("Enter second number:");
        n = s.nextInt();
        while(true)
        {
            System.out.println("Enter 1 for addition");
            System.out.println("Enter 2 for subtraction");
            System.out.println("Enter 3 for multiplication");
            System.out.println("Enter 4 for division");
            System.out.println("Enter 5 for factorial");
            System.out.println("Enter 6 to Exit and start again");
            opt = s.nextInt();
            switch(opt)
            {
                case 1:
                add = m + n;
                System.out.println("Result:"+add);
                break;
                case 2:
                sub = m - n;
                System.out.println("Result:"+sub);
                break;

                case 3:
                mul = m * n;
                System.out.println("Result:"+mul);
                break;

                case 4:
                div = (double)m / n;
                System.out.println("Result:"+div);
                break;    

                case 5:
                int i=1;
                fact = 1;
                for( i = m; i > 0; i--){
                fact *= i;
                }
                System.out.println("Result:"+fact);
                break;

                case 6:
                System.out.print("Enter first number:");
                m = s.nextInt();
                System.out.print("Enter second number:");
                n = s.nextInt();
            }
        }
    }
}

0 个答案:

没有答案