3.8 for语句基础
如果你曾用Basic或者FORTRAN进行过编程,那么应该看到过和C++的for语句相似的语句。它们的作用同样是从一个数计数到另一个数。例如,以下Basic循环能打印1~10的整数:
For i=l To 10
Prin i
Next i
Basic的“For”语句具有表述清楚、容易使用的优点。无可否认,它比C++的for语句少一些打字工作。
但是,c++的for语句的优势在于非常灵活。下面让我们稍做解释。
C++的for语句更灵活的一个证据是你可以为它使用任何三个有效的C++表达式。条件(中间的表达式)甚至不一定是“i〈n”这样的布尔表达式(虽然在此使用其他形式的表达式是一个不好的、危险的习惯)。在if,while和for等语句中对一个条件进行求值时,记住任何非零的值都被视为“true”。
for语句甚至不要求你将三个表达式都填满(即初始化表达式、条件表达式和递增表达式)。缺少其中任何一个表达式,它会被简单地忽略。注意,如果省略中间的条件表达式,那么条件默认为“true”,这样会造成一个无限循环。
for(;;) {
//无限循环
}
如第2章所述,无限循环通常是应该避免的。但是,假如你有办法中断循环(比如使用break语句),那么无限循环也并不是一件坏事情。在下例中,用户可以输入0值来中断循环。
for (;;) {
//执行某个任务
cout〈〈"Enter a number and press ENTER: ";
cin〉〉n:
if (n==O)
break;
//执行某个任务
)3.9 小结
下面总结了第3章的要点:
for语句的用途通常是重复采取一项行动,直到计数到一个特定的值。语句采用
以下语法:
for (初始化表达式;条件;递增)
语句它等价于以下while循环:
初始化表达式;
while(条件){
语句
递增;
}
for循环的行为和while循环一样,但有一个例外:如果使用continue语句,那
么会在循环变量递增之后,才会跳到下一个循环迭代。
和其他控制结构一样,你可以在for中使用大括号({})来包含一个复合语句:
for (初始化表达式:条件;递增){
语句
下例中的变量i称为循环变量:
for(i=1; i〈=10;i++)
cout〈〈i〈〈 " ";
在初始化表达式中,可以动态声明一个变量。这会使变量具有局部于for循环本
身的作用域。换言之,对变量的更改不会影响循环外声明的同名变量。
for(int i=1;i〈=10; i++)
cout〈〈i〈〈" " :
与if及while一样,for语句的循环条件可以是任何有效的c++表达式;任何非
零值都被视为“true”。但是,最好还是坚持使用正规的布尔表达式,比如x〉0
和a:=b。
for语句圆括号内的3个表达式均可省略(初始化、条件和进增表达式)。如果省略
了条件,那么循环会无条件执行(即无限循Z环)。记住用一个break语句来中断循
环。
for(;;){
//无限循环
}
……
展开