2017-06-16 125 views
-3

在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);
我用过break;但它也终止了时间条件。

+0

你可以使用lambda,并立即调用它,然后用'return'作为'break'。 –

+2

看起来你错过了一些作品。请提供[最小,**完整**和可验证示例](https://stackoverflow.com/help/mcve)。 – InternetAussie

+2

我认为你误解了break关键字的作用 - break只会让你脱离最直接内部的最内层循环;它不会让你摆脱多层循环。 –

回答

2

您的代码有多个语法错误,即缺少内部循环的大括号/ 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

1

使用break像这样:

do { 
    /* some statement1*/ 
    for (int i = 0; i < n; ++i) { 
    if (vec[i] == a) { 
     break; 
    } 
    } 
} while (statement3);