如何用if语句在C++中的do-while循环中终止for循环?
问题描述:
在do-while循环中我正在使用for循环读取矢量的值。这个向量有重复的值。我想停止使用if语句的for循环。 如何用if语句在C++中的do-while循环中终止for循环?
do {
/* some statement1*/
for(int i = 0; i < n; ++i)
{
if (vec[i] == a)
{
/* some statement2*/
}
} //here i want to terminate the for loop once it finds value a in vector
} while (statement3);
答
您的代码有多个语法错误,即缺少内部循环的大括号/ if条件。只有一个右大括号。下面是正确版本的代码与break
它应该是:
do
{
/* some statement 1 */
for(int i = 0; i < n; ++i)
{
if (vec[i] == a)
{
/* some statement 2 */
break;
}
}
} while (condition);
而且,它应该工作。它会break
内部for
循环而不是外部do-while
。
答
使用break
像这样:
do {
/* some statement1*/
for (int i = 0; i < n; ++i) {
if (vec[i] == a) {
break;
}
}
} while (statement3);
你可以使用lambda,并立即调用它,然后用'return'作为'break'。 –
看起来你错过了一些作品。请提供[最小,**完整**和可验证示例](https://stackoverflow.com/help/mcve)。 – InternetAussie
我认为你误解了break关键字的作用 - break只会让你脱离最直接内部的最内层循环;它不会让你摆脱多层循环。 –