C++中最为常用的三种循环:for 循环、while 循环和 do-while 循环,直接上代码:
for循环
for ( init; condition; increment )
{statement(s);
}
- init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
- 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
- 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
- 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。
#include <iostream>
using namespace std;void Log(const char* message)
{cout << message << endl;
}int main()
{for (int i = 0; i < 5; i++) {Log("Hello world!");}cin.get();
}
这样就会打印 “Hello world!” 五次,而如果留空 init 和 increment ,就可以改写如下,功能不变:
#include <iostream>
using namespace std;void Log(const char* message)
{cout << message << endl;
}int main()
{int i = 0; // initfor (; i < 5;) {Log("Hello world!");i++; // increment}cin.get();
}
如果三个位置都留空,for(;;)
,就是无限循环。
while循环
#include <iostream>
using namespace std;void Log(const char* message)
{cout << message << endl;
}int main()
{int i = 0;while (i < 5) {Log("Hello world!");i++;}cin.get();
}
do-while循环
#include <iostream>
using namespace std;
//#include "../header/Log.h"void Log(const char* message)
{cout << message << endl;
}int main()
{int i = 0;do {Log("Hello world!");i++;} while (i < 5);cin.get();
}
它与while循环的区别就是,条件为false的时候while循环不会执行,而do-while循环会执行:
#include <iostream>
using namespace std;int main()
{while (false){cout << "while";}cout << "======" << endl;do {cout << "do-while";} while (false);cin.get();
}
输出为:
======
do-while