当前位置: 首页 > 文档资料 > C++大学教程 >

2.18 break 和 continue 语句

优质
小牛编辑
128浏览
2023-12-01

break和continue语句改变控制流程。break语句在while、for、do/while或switch结构中执行时,使得程序立即退出这些结构,从而执行该结构后面的第一条语句。break语句常用于提前从循环退出或跳过switch结构的其余部分(如图2.22)。图2.26演示了for重复结构中的break语句,if结构发现x变为5时执行break,从而终止for语句,程序继续执行for结构后面的cout语句。循环只执行四次。
注意这个程序中控制变量x在for结构首部之外定义。这是因为我们要在循环体中和循环执行完毕之后使用这个控制变量。

continue语句在while、for或do/while结构中执行时跳过该结构体的其余语句,进入下一轮循环。在while和do/while结构中,循环条件测试在执行continue语句之后立即求值。在for结构中,执行递增表达式,然后进行循环条件测试。前面曾介绍过.while结构可以在大多数情况下取代for结构。但如果while结构中的递增表达式在continue语句之后,则会出现例外。这时,在测试循环条件之前没有执行递增,并且while与for的执行方式是不同的。图2.27在for结构中用continue语句跳过该结构的输出语句,进入下一轮循环。

// Fig.2.26:fig02 26.cpp
// Usinq the break statement in a for structure
#include<~ostream.h>

int main(){
  // x declared here so it can be used after the loop
  int x;
  for ( x = 1; x <= 10; x++ ) {
    if { x == 5 )
      break;   // break loop only if x is 5
      cout << x <<" ";
    }
    cout << "\nBroke out of loop at x of" << x << endl;
    return O;
  }
}

输出结果:

1  2  3  4
Broke out of loop at x of 5

图2.26  for重复结构中的break语句

// Fig. 2.27: figO2_OT.cpp
// Using the continue statement in a for structure
#include 

int main(){
  for ( iht x = 1; x <- 10; x++ ){
    if (x==5){
      continue;  // skip remaining code in loop
      // only if x is 5
      cout << x <<" ";
    }
    cout << "\nUsed continue to skip printing the value 5"
    << endl;
    return O;
  }
}

输出

1 2 3 4 5 6 7 9 9 10
USed continue to skip printing the value 5

图 2.27  在for结构用continue语句

编程技巧2.30

有些程序员认为break和continue会破坏结构化编程。由于这些语句可以通过后面要介绍的结构化编程方法实现,因此这些程序员不用break和continue。

性能提示 2.9

正确使用break和continue语句能比后面要介绍的通过结构化编程方法的实现速度更快。

软件工程视点2.10

达到高质量软件工程与实现最佳性能软件之间有一定冲突。通常,要达到一个目标,就要牺牲另一个目标。