java - 如何退出 Java 中的 do while 循环?

标签 java swing loops do-while

将号码输出为电话号码格式的简单程序 我似乎无法退出循环我不确定我做错了什么我想 !PhoneNumber.equals("999");当用户输入 999 但它不起作用时会退出循环。谁能帮我这是我的代码

import javax.swing.*;

public class PhoneNumberFormat 
{

    public static void main(String[] args) 
    {
      String PhoneNumber;
      int numLength= 10;

      do
      {

          PhoneNumber = JOptionPane.showInputDialog(null, 
                 "Enter your 10 digit phone number or enter 999 to quit");
          while(PhoneNumber.length() != numLength)
          {
              PhoneNumber = JOptionPane.showInputDialog(null,
                  "Error: You Entered " + PhoneNumber.length() + " digits\nPlease"
                      + " Enter a 10 digit Phone number");    
          }

            StringBuilder str = new StringBuilder (PhoneNumber);
            str.insert(0, '(');
            str.insert(4, ')');
            str.insert(5,' ');
            str.insert(9, '-');

        JOptionPane.showMessageDialog(null, "Your telephone number is " +str.toString());

      }while(!PhoneNumber.equals("999"));

    }
}

最佳答案

如果您希望在 999 时存在,您需要添加一个 if 条件来监视它。

public static void main(String[] args) {
    String PhoneNumber;
    int numLength = 10;

    do {
        PhoneNumber = JOptionPane.showInputDialog(null,
                "Enter your 10 digit phone number or enter 999 to quit");

        // add this condition to exit the loop, as well protect against NPE
        if (PhoneNumber == null || PhoneNumber.equals("999")) {
            break;
        }

        while (PhoneNumber.length() != numLength) {
            PhoneNumber = JOptionPane.showInputDialog(null,
                    "Error: You Entered " + PhoneNumber.length()
                            + " digits\nPlease"
                            + " Enter a 10 digit Phone number");

            //protect against NPE
            if(PhoneNumber == null) 
               PhoneNumber = "";
        }

        StringBuilder str = new StringBuilder(PhoneNumber);
        str.insert(0, '(');
        str.insert(4, ')');
        str.insert(5, ' ');
        str.insert(9, '-');

        JOptionPane.showMessageDialog(null, "Your telephone number is "
                + str.toString());

    } while (!PhoneNumber.equals("999"));

}

关于java - 如何退出 Java 中的 do while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788739/

相关文章:

java - sun.java2d.loops.ProcessPath$点

javascript - 使用 moo 工具的 Fx.Slide 操纵许多滑动对象的最佳方式

java - 无需浏览器即可在 Play 服务器中进行身份验证

java - 如何逐步加载图像以便 ImageObserver 工作?

java - JTabbedPane Tab 组件的 MouseEvents 没有流血

java - 不同屏幕分辨率的 Swing 尺寸问题

java - Jersey 服务器 JSON 响应抛出 MalformedChunkCodingException : Chunked stream ended unexpectedly

java - 从java程序在后台启动shell脚本

Java GUI 不会显示我想要的提示

python - Numpy 相当于 if/elif/else,如果不满足条件则保留最后一个值