分支 if / else
if (x > 0) {
// ...
} else if (x == 0) {
// ...
} else {
// ...
}
三元运算符:int m = (a > b) ? a : b;
switch
适合多分支等值判断(整数、字符):
switch (op) {
case 1: /* ... */ break;
case 2: /* ... */ break;
default: break;
}
for 循环
for (int i = 0; i < n; i++) { /* ... */ }
vector<int> v = {1, 2, 3};
for (int x : v) { /* 范围 for */ }
while
while (cin >> n && n) { /* 多组数据 */ }
while (!q.empty()) { /* BFS */ }
break / continue
break:跳出当前循环或 switchcontinue:进入下一轮循环
常见写法
// 枚举子集(状压)
for (int s = mask; s; s = (s - 1) & mask) { }
// 二分
while (l < r) {
int mid = (l + r + 1) >> 1;
if (check(mid)) l = mid; else r = mid - 1;
}