【问题标题】:understanding break statement and handling it for existing code理解 break 语句并为现有代码处理它
【发布时间】:2014-12-30 04:46:52
【问题描述】:

在下面的示例中,我在处理 break 语句时遇到了问题。对于 country = US,somearray 的长度仅为 1。但在“DE”的情况下,长度大于一。但是给定程序,由于 break 语句用于在处理第一行后退出,因此它不适用于 DE 国家,因为 DE 国家有不止一行。 using 是一种更好的方法,检查是否有某种方式我也可以对国家 =DE 重新使用相同的逻辑

        if(country == "US" || country == "DE")
        {

            for(int i = 0; i < somearray.length(); i++)
            {

                if( (payment == "USD") )
                {
                    if(amount > 0)
                    {
                        //do something  
                    }

                    if( balance.is_positive())
                    {
                        // do something
                    }

                    break;
                }
            }
        }

注意:这不是实际代码..只是写了一个例子来理解..

【问题讨论】:

  • 为什么不直接删除break
  • 付款与什么有关?它只适用于美国国家吗?因为据我所知,你的休息取决于付款而不是 somearray
  • @Codeek,哎呀,错过了,谢谢
  • = 是分配。你的意思要么是==要么是strcmp
  • 我同意阿尔夫的观点。如果您说的是真的,那么break 首先毫无意义。您已经说过“对于国家 = 美国,somearray 的长度仅为 1”。 IE。在迭代之后你会打破 anyway 因为 for 循环的条件将失败,因此会自行中断。

标签: c++ for-loop break


【解决方案1】:
 if(country = "US" || country = "DE")
        {

            for(int i = 0; i < somearray.length(); i++)
            {

                if( (payment == "USD") )
                {
                    if(amount > 0)
                    {
                        //do something  
                    }

                    if( balance.is_positive())
                    {
                        // do something
                    }
                  if(somearray.length()==1)  // as per Your requirement country **us** has **length 1** ,in this can break the loop 
                    {break;}
                }
            }
        }

【讨论】:

    【解决方案2】:

    据我了解,您想处理 somearray 中的每个元素,因此删除 break 语句就足够了。 if (payment = "USD") 在这里没用,一个简单的声明 payment="USD" 就足够了。此外,由于这是一个对所有循环迭代都相同的赋值,所以将它拉到外面并在循环之前赋值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多