有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使循环停止

我试图停止计算器程序的循环,但我不允许使用中断或系统。出口我怎样才能停止我的循环,在菜单上加5?另外,如果我想再次使用计算器的问题输入“n”,我如何使程序退出?另外,我正在使用Java

public static void main (String args []) {
    String MainMenu = " Calculator Options \n\n1. Addition\n2" +
            " Subtraction\n3. Multiplication\n4. Division\n5. Exit";
    menu (MainMenu);

    while (true) {
       String YesorNo = JOptionPane.showInputDialog("Would You Like to Use the Calculator Again (y / n)? ");

       if (YesorNo.equals ("y")) {
           menu (MainMenu);
       }

       if (YesorNo.equals ("n")) {

       }
    }
}

public static int menu (String info) {
    String choice = JOptionPane.showInputDialog (info);
    if (choice.equals ("1"))
        return Addition();
    else if (choice.equals ("2"))
        return Subtraction();
    else if (choice.equals ("3"))
        return  Multiplication();
    else if (choice.equals ("4"))
        return  Division();
    else
        return 0;
}

共 (2) 个答案

  1. # 1 楼答案

    要回答你们两个问题:

    您只需要使用do-while循环,并在其中包含这两个条件。 但在您当前的实现中,它不会100%正常工作

    原因是,您返回操作以及来自menu的结果

    首先,这就是你的循环的样子

    do {
       String YesorNo = JOptionPane.showInputDialog ("Would You Like to Use the Calculator Again (y / n)? ");
       int menuReturn = menu (MainMenu);
    } while (YesorNo.equals("y") || menuReturn != 0);
    

    如果menu方法不在值0-4内,那么它会返回0。但是当你的任何数学运算的结果是0时会发生什么呢?您还可以关闭计算器。此时,您可能需要更改menu的功能

    private static int result = 0;
    
    public static int menu (String info) {
       String choice = JOptionPane.showInputDialog (info);
       if (choice.equals ("1")) {
           result = Addition();
           return 1;
       }
       else if (choice.equals ("2")) {
           result = Subtraction();
           return 1;
       }
       else if (choice.equals ("3")) {
           result = Multiplication();
           return  1;
       }  
       else if (choice.equals ("4")) {
           result = Division();
           return 1;
       }
       else if (choice.equals("5"))
           return -1;
       else 
           return 0;
    

    您的循环设计现在将更改为以下内容

    do {
       String YesorNo = JOptionPane.showInputDialog ("Would You Like to Use the Calculator Again (y / n)? ");
       int menuReturn = menu (MainMenu);
       // Work with the result now
       if (menuReturn == 0) // invalid input;
    } while (YesorNo.equals("y") || menuReturn != -1);
    

    但为了使其完全符合OOP原则,您可能需要重写一点答案中显示的代码

  2. # 2 楼答案

    使用break关键字

    if (YesorNo.equals ("n")) {
        break;
    }
    

    {cd3}和{cd3}在条件中使用

    do {
        // code & blaaa .. blaaa & code
    } while (YesorNo.equals("y"));