如果string.contains()是正确的,如何进行嵌套循环中断

时间:2015-10-15 06:17:33

标签: java while-loop nested

我在理解嵌套循环及其行为方面遇到了问题。在第一个循环中,脚本要求输入10位数字,否则它将保持循环,这样可以正常工作。在第二个循环中,我试图让程序继续运行,直到用户在电话号码的任何地方输入“999”。我有一些想法,但我不能把它放在一起。因此,如果用户输入一个10位数字,但它不包含999,那么它将继续要求重新输入电话号码。

.Item("Company")

3 个答案:

答案 0 :(得分:1)

使用

if (phoneNum.contains(nineS))
 {}

不要使用

while (phoneNum.contains(nineS))  

或U可以这样做

if (!(phoneNum.contains(nineS)))
          {
            JOptionPane.showMessageDialog(null,"Invalid Input");
          }    

答案 1 :(得分:0)

嵌套是指一个循环位于另一个循环内部。您提供的代码没有。

嵌套的典型示例:

while( some_condition )
{ 
    do_something..
    while( more_condition )
    {
        do_something_more..
    }
}

如果我理解正确,您希望继续输入数字并对其进行操作。但是一旦用户输入一个包含'999'的数字,控件就必须退出循环。

正如有人已经指出的那样,你根本不需要嵌套循环来实现这一点。

while( phoneNumber has 10 digits )
{
     do_something..
     if( phoneNumber has '999' anywhere )
     {
         break;
     }
}

答案 2 :(得分:0)

while (phoneNum.length()!=numLength)
    {
        phoneNum=JOptionPane.showInputDialog(null, "You must re-enter 10 digits as your telephone number.");

        StringBuffer str1 = new StringBuffer (phoneNum);
        str1.insert(0, '(');
        str1.insert(4, ')');
        str1.insert(8, '-');

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

          if(phoneNum.contains(nineS))// THIS IS THE ISSUE
            break;
    }

希望这会有所帮助。