在循环入口处定义循环三要素,循环条件为真时执行循环体,先判断再循环。
语法
C++中 for 循环的语法为:
for (init; condition; increment) {
statement(s);
}
for 循环的执行顺序大致如下:
- for 循环会首先执行 init 进行初始化,只会被执行一次,这里可以直接声明并赋值创造一个或多个变量。但是不推荐初始化多个变量,多个变量会导致循环条件的判断不清晰。
- condition 为循环条件,当 init 初始化完成之后会进行循环条件的判断。可以是任意的表达式,为真时执行循环体。
- statement(s) 为循环体,在循环条件判断为真之后执行,可以是单条语句或多条语句的代码块。
- increment 为循环变量更新语句,在循环体执行完成之后执行,为单条语句。理论上这里可以是任何语句,与循环变量无关的语句也可以,但是极其不推荐这么做。
- 执行完 increment 语句之后回到第 2 步进行条件判断。
注意: init 、condition 和 increment 之间一定要以 ; 分号隔开,就算三个语句都为空也一定要有 ; 分号,否则会报错!
流程图
for 循环的执行过程如下:
实例
打印 1997 年 7月的日历,1997.7.1 为星期二。
#include <iostream>
using namespace std;
int main() {
//打印1997年7月的月历
const int MONTH = 31;
const int WEEK = 7;
int day_of_week = 2; // 1997年7月1日为星期二
cout << "1997年7月的月历如下:" << endl;
cout << "一\t二\t三\t四\t五\t六\t日" << endl;
// 填充 1号之前的星期
for (int i = 0; i < day_of_week - 1; i++) {
cout << '\t';
}
for (int day = 1; day <= MONTH; day++) {
cout << day << '\t';
if (((day_of_week + day - 1) % WEEK) == 0)
cout << endl;
}
cout << endl;
system("pause");
return 0;
}
输出结果如下:
1997年7月的月历如下:
一 二 三 四 五 六 日
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
请按任意键继续. . .
