本节介绍的是迭代语句,也就是循环语句。
循环语句的运行特点是在判断条件为false之前一直进行循环体内的操作一遍一遍的重复执行。
介绍一下几种形式:
// while循环 while(condition) statement // 传统for循环 for(init-statement; condition;expression) statment // 范围for循环 for(declaration : expression) // C++ 11 statement // do while 循环 do statement while(condition);
上面的示意代码是四种不同的循环(迭代)形式的语法。
下面通过一个遍历的程序来分别看一下如何使用这些循环的形式。
#include <iostream> #include <vector> #include <string> using std::cout; using std::cin; using std::string; using std::vector; using std::endl; int main() { vector<int> v = {0,1,2,3,4,5,6,7,8,9}; int i; while(cin >> i) // 在循环次数不定的情况下建议选择while,如此处的接收输入 v.push_back(i); auto beg = v.begin(); while(beg != v.end() && *beg >=0 )// 条件表达式中并不是只能做一种判断 ++beg; if (beg == v.end()) cout << "all of number in v is positive number" << endl; else cout << "v contains " << *beg << endl; cout << "Use the traditional for loop traversal:\t"; for ( int i = 0; i < v.size(); ++i) // 传统的for循环 { cout << v[i] << " "; } cout << endl; cout << "Use the range for loop traversal:\t"; for (auto it : v) // 范围循环 { cout << it << " "; } cout << endl; cout << "Use the do while loop traversal:\t"; auto dBeg = v.begin(); // do while 限制性一次循环然后再进行判断,这种方式不太适合进行遍历的操作 // 如果被遍历容器为空那么则会造成程序崩溃。 // do while 最大的特点就是在正常运行过程中至少被执行一次 do { cout << *dBeg << " "; ++dBeg; }while(dBeg != v.end()); cout << endl; }