在循环

时间:2017-05-21 13:23:27

标签: java while-loop switch-statement

我正在尝试使用java中的Switch案例编写简单的计算器(一体化)。到目前为止,我想出了以下代码。但是我一直坚持使用while循环。我想在每个案例执行后继续显示主菜单,直到用户决定退出程序。

public static void main(String[] args) 
{   
    Scanner s=new Scanner(System.in);
    System.out.println("Main Menu:");
    System.out.println("1. Addition");
    System.out.println("2. Substraction");
    System.out.println("3. Multipication");
    System.out.println("4. Division");
    System.out.println("Enter your choice: ");
    int i=s.nextInt();

    System.out.println("ENTER FIRST NUMBER ");
    int a=s.nextInt();

    System.out.println("ENTER SECOND NUMBER ");
    int b=s.nextInt();

    int result=0;

    switch(i)
    {
        case 1:
            result=a+b;
            break;
        case 2:
            result=a-b;
            break;
        case 3:
            result=a*b;
            break;
        case 4:
            result=a/b;
            break;

        default:
            System.out.println("Wrong Choice.");

    }

    System.out.println("Answer is "+result);
    }
}

以上代码工作正常。程序在执行用户选择的选项后结束。我想把主菜单重复一次。

3 个答案:

答案 0 :(得分:3)

像这样添加while循环:

public static void main(String[] args) {

        // Moved this outside the while loop as davidxxx pointed out +1
        Scanner s = new Scanner(System.in);


        while (true) {
            System.out.println("Main Menu:");
            System.out.println("1. Addition");
            System.out.println("2. Substraction");
            System.out.println("3. Multipication");
            System.out.println("4. Division");
            System.out.println("Enter your choice: ");
            int i = s.nextInt();

            System.out.println("ENTER FIRST NUMBER ");
            int a = s.nextInt();

            System.out.println("ENTER SECOND NUMBER ");
            int b = s.nextInt();

            int result = 0;//'result' will store the result of operation

            switch (i) {
                case 1:
                    result = a + b;
                    break;
                case 2:
                    result = a - b;
                    break;
                case 3:
                    result = a * b;
                    break;
                case 4:
                    result = a / b;
                    break;

                default:
                    System.out.println("Wrong Choice.");

            }

            System.out.println("Answer is " + result);

            System.out.println("Go again?");
            String goAgain = s.next();
            if (!goAgain.equals("y")) {
               break;
            } 

        }
    }

答案 1 :(得分:0)

试试这个:

import java.util.Scanner;

public class Calculator {

    private static final String EXIT = "EXIT";

    public static void main(String[] args) {

        Calculator calc = new Calculator();
        Scanner s = new Scanner(System.in);
        while (true) {
            String res = calc.runCalc(s);
            if (res.equals(EXIT)) {
                break;
            } else {
                System.out.println(res);
            }
        }
    }

    private String runCalc(Scanner s) {
        System.out.println("Main Menu:");
        System.out.println("1. Addition");
        System.out.println("2. Substraction");
        System.out.println("3. Multipication");
        System.out.println("4. Division");
        System.out.println("5. Exit");
        System.out.println("Enter your choice: ");
        int i = s.nextInt();

        if (i == 5) {
            return EXIT;
        }

        System.out.println("ENTER FIRST NUMBER ");
        int a = s.nextInt();

        System.out.println("ENTER SECOND NUMBER ");
        int b = s.nextInt();

        int result = 0;// 'result' will store the result of operation

        switch (i) {
        case 1:
            result = a + b;
            break;
        case 2:
            result = a - b;
            break;
        case 3:
            result = a * b;
            break;
        case 4:
            result = a / b;
            break;

        default:
            return "Wrong Choice.";

        }

        return "Answer is " + result;
    }
}

答案 2 :(得分:0)

实现此目的的方法不止一种,您可以使用

  1. while loop。
  2. do-while循环。
  3. for loop。
  4. 我认为 do-while 循环更适合您的情况。因为任何一个用户想要继续或不继续,你必须进行一次(在循环错误之前)。而且你不想使用另一个变量来退出循环。

    public static void main(String[] args) 
    {   
        Scanner s=new Scanner(System.in);
    
        int result=0;
    
        do{
            System.out.println("Main Menu:");
            System.out.println("-1. complete and calculate");
            System.out.println("1. Addition");
            System.out.println("2. Substraction");
            System.out.println("3. Multipication");
            System.out.println("4. Division");
            System.out.println("Enter your choice: ");
    
            int i=s.nextInt();
            if(i ==-1){
                System.out.println("Answer is "+result);
                return;
            }
            System.out.println("ENTER FIRST NUMBER ");
            int a=s.nextInt();
    
            System.out.println("ENTER SECOND NUMBER ");
            int b=s.nextInt();
    
    
            switch(i)
            {
                case 1:
                    result=a+b;
                    break;
                case 2:
                    result=a-b;
                    break;
                case 3:
                    result=a*b;
                    break;
                case 4:
                    result=a/b;
                    break;
                default:
                    System.out.println("Wrong Choice.");
                    break;
            }
        }while(true);
    
    }