��
程序段
  F0 = F(a); F1 = F(b);
  if ( F0*F1 <= 0 ) {
�� X0 = a; X1 = b;
�� for (i = 1;i <= n;i++) {
��� Xm = (X0+X1)/2;
��� Fm = F(Xm);
��� if ( abs(Fm) < eps || abs(X1-X0) < eps )
���� goto finish;
���� if (F0*Fm>0) { X0 = Xm;F0 = Fm;}
���� else X1 = X;
    }
   finish:printf("\n The root of this equation is %d\n",Xm);
  }
 
图示

图4.2 函数F(x) 曲线

�� 这类循环结构出现了两个循环出口。一个是for循环的正常出口:当循环控制变量i超出了循环终值n时退出循环;另一个是for循环的非正常出口:当某种条件满足时,从循环中间某处转出循环,执行循环后面的语句。它不满足结构化的要求。做为对照,再看下面的两个程序段(程序段2和程序段3)。