用功能中断循环

Break for loop with function?

本文关键字:循环 中断 功能      更新时间:2023-10-16
void fbreak(int i){
   if(5==i)
      break;
}
void main(){
   for(int i = 0;i<10;i++){
      fbreak(i);
   }
}

我想为循环提供中断功能。但似乎我的代码不起作用。

实际上,

您要做的是实现在标头<algorithm>中声明的 stadard 算法std::find(或 std::find_if (

您可以通过以下方式编写程序

bool fbreak( int i )
{
   return i == 6;
}
int main()
{
   int i = 0;
   while ( i < 10 && !fbreak( i ) ) i++;
}

考虑到函数 main 应具有返回类型 int

对代码的一个非常简单的修改将是

void fbreak(int *i){
   if(5== *i)
      *i = 10;
}
void main(){
   for(int i = 0;i<10;i++){
      fbreak(&i);
   }
}

这会将 i 的值增加到 10,这将导致循环中断

实际上,您不能从函数范围执行此操作,但是您可以轻松地执行以下操作:

bool fbreak(int i){
   return (5==i);
}
int main(){
   for(int i = 0;i<10;i++){
      if(fbreak(i)) break;
   }
}