C++初学者指南第一步—7.控制流(基础)
文章目录
- C++初学者指南第一步---7.控制流(基础)
- 1.术语:表达式/语句
- Expressions表达式
- Statements语句
- 2.条件分支
- 3.Switching(切换):基于值的分支
- 4.三元条件运算符
- 5.循环迭代
- 基于范围的循环 C++11
- for(初始化;条件;步骤) {…}
- while(条件) {…}
- do {…} while(条件);
1.术语:表达式/语句
Expressions表达式
- 一系列计算(运算符+操作数)
- 可能会产生结果
Statements语句
- 按顺序运行的程序片段
- 不产生结果
- 可以包含一个或多个表达式
- 用 ; 分隔,并按 { } 分组
2.条件分支
if (condition1) {
// 如果condition1为真true,则执行这里的代码
}
else if (condition2) {
// condition1为假false,如果condition2为真则执行这里的代码
}
else {
// 否则执行这里的代码(即condition1和condition2都为假false)
}
- 根据条件的结果执行(不执行)代码
- 条件表达式的结果必须(可转换为)布尔值
- 条件将从上到下进行检查
if (true) { cout << "yes\n"; } // yes
if (false) { cout << "yes\n"; } // –
if (23) { cout << "yes\n"; } // yes (23 → true)
if (0) { cout << "yes\n"; } // – (0 → false)
int i = 0;
cin >> i;
if (i < 0) {
cout << "negative\n";
} else if (i == 0) {
cout << "zero\n";
} else {
cout << "positive\n";
}
C++17标准增加的语法
if (语句; 条件) { ... }
用于限制临时变量的范围
int i = 0;
std::cin >> i;
if (int x = 2*i; x > 10) { cout << x; }
3.Switching(切换):基于值的分支
- 整数类型(char、int、long、enums 等)的值
- 从上到下检查和执行
- 执行匹配case和下一个break(或结束}之间的所有内容) 注意这句话
int i = 0;
cin >> i;
int m = i % 5;
switch (m) {
case 0: // 如果m等于0,执行这里代码
break;
case 1: // 如果m等于1,执行这里代码
case 3: // 如果m等于1或者3,执行这里代码
break;
default: // 如果m不等于0、1、3则执行这里代码
}
C++17标准增加的语法
switch (语句; 变量) { ... }
用于限制临时变量的范围
int i = 0;
std::cin >> i;
switch (int k = 2*i; k) { … }
4.三元条件运算符
语法:
Result = Condition ? If-Expression : Else-Expression
结果 = 条件 ? 条件为真的结果 : 条件为假的结果
int i = 8; int j = i > 10 ? 1 : 2; | j = 2 |
int k = 20; | |
int l = (k > 10) ? 1 : 2; | l = 1 |
int b = true; double d = b ? 2.0 : 0.5; double e = !b ? 2.0 : 0.5; | d =2.0 e = 0.5 |
5.循环迭代
基于范围的循环 C++11
for(变量:范围) {…}
范围 = 具有标准迭代器接口的对象,例如 std::vector
std::vector<int> v {1,2,3,4,5};
// print all elements of vector to console
for (int x : v) { std::cout << x << ' '; }
运行上面代码
for(初始化;条件;步骤) {…}
// prints 0 1 2 3 4
for (int i = 0; i < 5; ++i) {
std::cout << i << ' ';
}
运行上面代码
while(条件) {…}
第一次条件检查:在第一次循环迭代之前
int j = 5;
while (j < 10) {
std::cout << j << ' ';
++j;
}
当 j 小于10时,打印:5 6 7 8 9
运行上面代码
do {…} while(条件);
注意最后的分号
第一次检查条件:在第一次循环迭代之后
- 只有在没有(标准)库函数/算法的情况下才写循环(我们将在后面的章节中了解标准库)!
- 比起其他类型的循环,更推荐基于范围的循环!(不可能出现索引/条件错误)
- 只在事先不知道迭代次数的情况下使用(do) while循环!
附上原文地址
如果文章对您有用,请随手点个赞谢谢!^_^