语句
简单语句以分号结束,如表达式语句、空语句。
v + 5; //表达式语句
cout << v; //表达式语句
; //空语句
1.复合语句(块)
复合语句是指用花括号括起来的语句和声明的序列,复合语句也被称为块。
一个块就是一个作用域,只在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。 如:
while (v <= 10) {
sum += v;
++v;
int ret = sum; //ret在块中定义
} //离开块ret被销毁
cout << ret; //错误,ret已被销毁不能使用
2.while语句
while语句当满处条件时就重复地执行循环体,当不确定要迭代多少次时,使用while循环比较合适。
while (condition) {
statement;
}
定义在while条件或循环体部内的变量每次迭代都要经历从创建到销毁的过程。
while (1) {
int i = 0;
i++;
} //i不停的创建销毁
3.传统for语句
for语句语法形式:
for (init_statement; condition; expression) {
statement;
}
for语句执行流程如下:
- 循环开始时,先执行一次init-statement.
- 判断condition
- 如果条件为真,执行循环体。
- 最后执行expression
如:
for (int i = 0; i != s.size() && !isspace(s[i]); i++) {
s[i] =toupper(s[i]); //将当前字符改为大写
}
//等价于while的形式
{//相当于for的作用域
int i = 0;//这里i属于
while(i != s.size() && !isspace(s[i])) {
s[i] = toupper(s[i]);
i++;
}
}
4.范围for语句
范围for语句可以遍历容器或其他序列的所有元素。语法形式为:
for (declaration : expression) {
statement;
}
其中,expression是一个序列对象,如vector或string对象。declaration表示一个变量,用于访问序列中元素,statement表示对这个对象进行的某种操作。
如:把string对象中的元素全部打印出来
string s("abcd");
for (char c : s) {
cout << c<< " ";
}
打印结果为:a b c d
又如:将s中的小写字符全变成大写字符
string s("akzzzz");
for (auto &c : s) {
c=toupper(c); //c是一个引用,因此赋值语句将改变s中字符的值
cout << c ;
}