【问题标题】:Is it break my for loop in c++?它打破了我在 C++ 中的 for 循环吗?
【发布时间】:2013-10-14 16:18:10
【问题描述】:
for(size_t i=0;i<vec.size();i++){
    if(n>vec[i]){
        a=i;
        break;
    }
}

在这个例子中,我是打破 if 语句还是 for 循环?

【问题讨论】:

  • 试试吧:ideone.com
  • 无论如何你都应该使用std::find_if
  • 你不能破坏 if 语句...
  • 如果您觉得goto 更具可读性,请随意使用。
  • 呃,没有。 breakgoto 的缩写,表示当前迭代语句末尾的隐式标签,实际命名该标签并没有错,尤其是当事情变得更复杂时(例如嵌套循环)。

标签: c++ for-loop break


【解决方案1】:

break 语句用于中断 switchiteration 语句,即 while、do 或 for 循环。 C++ draft standard section 6.6.1 break 声明 说:

break 语句只能出现在迭代语句或 switch 语句中,并导致最小的封闭迭代语句或 switch 语句终止;控制权传递给终止语句之后的语句(如果有)。

由于 if 不是 iteration statementswitch 那么 break 将离开 for 循环。

【讨论】:

    【解决方案2】:

    break 语句仅结束立即包含它的 doforswitchwhile 语句。它不会跳出 if 语句,因此您的代码会跳出循环。

    【讨论】:

      【解决方案3】:

      它将从 for 循环中中断。

      在循环中,break 语句结束最近的封闭语句的执行 doforwhile 语句。

      来源: Microsoft docs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多