Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 初学者寻求指导_Java_Loops_While Loop_Switch Statement - Fatal编程技术网

Java 初学者寻求指导

Java 初学者寻求指导,java,loops,while-loop,switch-statement,Java,Loops,While Loop,Switch Statement,我正在编写一个非常基本的菜单计算器 显示菜单 获取用户选择并基于该选择执行操作 显示结果 循环回到菜单,直到用户输入10退出循环 让我困惑的是在while循环中使用switch语句。输入10应该退出程序,它确实退出了,但只是在一开始。第二次显示菜单并要求输入时,10不会退出程序 我们也非常欢迎任何其他建议 public class MenuCalculator { public static void main(String[] args) {

我正在编写一个非常基本的菜单计算器

  • 显示菜单
  • 获取用户选择并基于该选择执行操作
  • 显示结果
  • 循环回到菜单,直到用户输入10退出循环
  • 让我困惑的是在while循环中使用switch语句。输入10应该退出程序,它确实退出了,但只是在一开始。第二次显示菜单并要求输入时,10不会退出程序

    我们也非常欢迎任何其他建议

        public class MenuCalculator 
        {
    
        public static void main(String[] args) 
        {
            showMenu();
        }
    
        public static void showMenu() 
        {
            Scanner input = new Scanner(System.in);
            //menu display   
            System.out.println("Calculator Menu");
            System.out.println("---------------");
            System.out.println("1. Add two integers. ");
            System.out.println("2. Add two doubles. ");
            System.out.println("3. Subtract two integers. ");
            System.out.println("4. Subtract two doubles. ");
            System.out.println("5. Multiply two integers. ");
            System.out.println("6. Multiply two doubles. ");
            System.out.println("7. Divide two integers. ");
            System.out.println("8. Divide two douvles. ");
            System.out.println("9. Compute a factorial product of a number (n!) ");
            System.out.println("10. Exit. ");
            System.out.println(" ");
            System.out.println("Your choice?");
            int userChoice = input.nextInt();
    
            while (userChoice < 10) 
            {
    
                switch (userChoice) 
                {
    
                    case 1:
                        System.out.println("Enter the first number * : ");
                        int addInt1 = input.nextInt();
                        System.out.println("Enter the 2nd number: ");
                        int addInt2 = input.nextInt();
                        System.out.println(add(addInt1, addInt2));
                        break;
                    case 2:
                        System.out.println("Enter the first number !: ");
                        double plusDub1 = input.nextDouble();
                        System.out.println("Enter the 2nd number:  @");
                        double plusDub2 = input.nextDouble();
                        System.out.println(addDbl(plusDub1, plusDub2));
                        break;
                    case 3:
                        System.out.println("Enter the first number: #");
                        int subInt1 = input.nextInt();
                        System.out.println("Enter the 2nd number: ");
                        int subInt2 = input.nextInt();
                        System.out.println(subtract(subInt1, subInt2));
                        break;
                    case 4:
                        System.out.println("Enter the first number: $");
                        double subDub1 = input.nextDouble();
                        System.out.println("Enter the 2nd number: ");
                        double subDub2 = input.nextDouble();
                        System.out.println(subtractDbl(subDub1, subDub2));
                        break;
                    case 5:
                        System.out.println("Enter the first number: %");
                        int multInt1 = input.nextInt();
                        System.out.println("Enter the 2nd number: ");
                        int multInt2 = input.nextInt();
                        System.out.println(multiply(multInt1, multInt2));
                        break;
                    case 6:
                        System.out.println("Enter the first number: ^");
                        double multDub1 = input.nextDouble();
                        System.out.println("Enter the 2nd number: ");
                        double multDub2 = input.nextDouble();
                        System.out.println(multiplyDbl(multDub1, multDub2));
                        break;
                    case 7:
                        System.out.println("Enter the first number: &");
                        int divInt1= input.nextInt();
                        System.out.println("Enter the 2nd number: ");
                        int divInt2= input.nextInt();
                        System.out.println(divide(divInt1, divInt2));
                        break;
                    case 8:
                        System.out.println("Enter the first number: -");
                        double divDub1= input.nextDouble();
                        System.out.println("Enter the 2nd number: ");
                        double divDub2= input.nextDouble();
                        System.out.println(divideDbl(divDub1, divDub2));
                        break;
                    case 9:
                        System.out.println("Enter a number: ");
                        int factoNum= input.nextInt();
                        System.out.println(factorialProduct(factoNum));
                        break;
                    default:
    
                }//end switch
                showMenu();
            }//end while
    
    
        }
    
        public static int add(int n1, int n2) 
        {
            //declare variables       
            int sum;
            // sum and return        
            sum = n1 + n2;
            return sum;
    
         }
    
        public static double addDbl(double n1, double n2) 
        {
            //declaration
            double sum;
            // sum and return        
            sum = n1 + n2;
            return sum;
    
        }
    
        public static int subtract(int n1, int n2) 
        {
            int total;
            total = n1 - n2;
            return total;
        }
    
        public static double subtractDbl(double n1, double n2) 
        {
            double total;
            total = n1 - n2;
            return total;
        }
    
        public static int multiply(int n1, int n2) 
        {
            int total;
            total = n1 * n2;
            return total;
        }
    
        public static double multiplyDbl(double n1, double n2) 
        {
            double total;
            total = n1 * n2;
            return total;
        }
    
        public static int divide(int n1, int n2) 
        {
            int total;
            total = n1 / n2;
            return total;
        }
    
        public static double divideDbl(double n1, double n2) 
        {
            double total;
            total = n1 / n2;
            return total;
        }
    
        public static int factorialProduct(int n) 
        {
            if (n == 0) 
            {
                return 1;
            } 
            else 
            {
                return n * factorialProduct(n - 1);
            }
        }
      }
    
    公共类菜单计算器
    {
    公共静态void main(字符串[]args)
    {
    showMenu();
    }
    公共静态无效显示菜单()
    {
    扫描仪输入=新扫描仪(System.in);
    //菜单显示
    System.out.println(“计算器菜单”);
    System.out.println(“--------------”;
    System.out.println(“1.添加两个整数”);
    System.out.println(“2.添加两个double.”);
    System.out.println(“3.减去两个整数”);
    System.out.println(“4.减去两个双精度。”);
    System.out.println(“5.两个整数相乘”);
    System.out.println(“6.乘两倍”);
    System.out.println(“7.除两个整数”);
    System.out.println(“8.将两个二等分”);
    System.out.println(“9.计算一个数(n!)的阶乘乘积”;
    System.out.println(“10.Exit”);
    System.out.println(“”);
    System.out.println(“您的选择?”);
    int userChoice=input.nextInt();
    while(userChoice<10)
    {
    开关(用户选择)
    {
    案例1:
    System.out.println(“输入第一个数字*:”;
    int addInt1=input.nextInt();
    System.out.println(“输入第二个数字:”);
    int addInt2=input.nextInt();
    系统输出打印项次(添加(添加1,添加2));
    打破
    案例2:
    System.out.println(“输入第一个数字:”;
    double plusDub1=input.nextDouble();
    System.out.println(“输入第二个数字:@”);
    double plusDub2=input.nextDouble();
    System.out.println(addDbl(plusDub1,plusDub2));
    打破
    案例3:
    System.out.println(“输入第一个数字:#”);
    int subInt1=input.nextInt();
    System.out.println(“输入第二个数字:”);
    int subInt2=input.nextInt();
    System.out.println(减法(subInt1,subInt2));
    打破
    案例4:
    System.out.println(“输入第一个数字:$”;
    double=input.nextDouble();
    System.out.println(“输入第二个数字:”);
    double=input.nextDouble();
    系统输出println(减DBL(减B1,减B2));
    打破
    案例5:
    System.out.println(“输入第一个数字:%”);
    int multInt1=input.nextInt();
    System.out.println(“输入第二个数字:”);
    int multInt2=input.nextInt();
    System.out.println(乘法(multiply(multInt1,multInt2));
    打破
    案例6:
    System.out.println(“输入第一个数字:^”);
    double multDub1=input.nextDouble();
    System.out.println(“输入第二个数字:”);
    double multDub2=input.nextDouble();
    System.out.println(multilydbl(multDub1,multDub2));
    打破
    案例7:
    System.out.println(“输入第一个数字:&”);
    int divInt1=input.nextInt();
    System.out.println(“输入第二个数字:”);
    int divInt2=input.nextInt();
    System.out.println(divide(divInt1,divInt2));
    打破
    案例8:
    System.out.println(“输入第一个数字:-”);
    double divDub1=input.nextDouble();
    System.out.println(“输入第二个数字:”);
    double divDub2=input.nextDouble();
    System.out.println(divideDbl(divDub1,divDub2));
    打破
    案例9:
    System.out.println(“输入一个数字:”);
    int factoNum=input.nextInt();
    System.out.println(factorialProduct(factoNum));
    打破
    违约:
    }//终端开关
    showMenu();
    }//结束时
    }
    公共静态整数添加(整数n1,整数n2)
    {
    //声明变量
    整数和;
    //求和与回报
    总和=n1+n2;
    回报金额;
    }
    公共静态双addDbl(双n1,双n2)
    {
    //声明
    双和;
    //求和与回报
    总和=n1+n2;
    回报金额;
    }
    公共静态整数减法(整数n1,整数n2)
    {
    整数合计;
    总数=n1-n2;
    返回总数;
    }
    公共静态双减法DBL(双n1,双n2)
    {
    双倍总数;
    总数=n1-n2;
    返回总数;
    }
    公共静态整数乘法(整数n1,整数n2)
    {
    整数合计;
    总数=n1*n2;
    返回总数;
    }
    公共静态双倍频BL(双n1,双n2)
    {
    双倍总数;
    总数=n1*n2;
    返回总数;
    }
    公共静态整数除法(整数n1,整数n2)
    {
    整数合计;
    总数=n1/n2;
    返回总数;
    }
    公共静态双除法DBL(双n1,双n2)
    
    public static void main() {
      while (true) {
        // display your menu
        userChoice = nextInt()
        switch (userChoice) {
          case 1:
            ...
          case 2:
            ...
          ...
          case 10:
            return;  // exits from main
        }
      }
    }