<C++>2 程序流程结构
本文最后更新于:2022年5月24日 早上
2 程序流程结构
C++ 支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择性地执行代码
- 循环结构:依据条件是否满足,循环多次执行代码
2.1 选择结构
依据条件是否满足,有选择性地执行代码
2.1.1 if 语句
if 语句的三种形式:
-
单行格式 if 语句:
if (判断条件) {执行语句}
if (true) { cout << "多 · 此 · 一 · 举" << endl; }
-
多行格式 if 语句:
if (判断条件) {执行语句} else {执行语句}
if (boolean) { cout << "殊 · 途 · 同 · 归" << endl; } else { cout << "殊 · 途 · 同 · 归" << endl; }
-
多条件 if 语句:
if (判断条件) {执行语句} else if (判断条件) {执行语句}
if (loseToThailand) { cout << "你到告诉我,怎么解释呢?" << endl; } else if (loseToVietnam) { cout << "脸都不要了" << endl; } else if (loseToMyanmer) { cout << "接下来没人输了" << endl; }
-
嵌套 if 语句
if (loseToSyrian) { if (fansAccompanyToTheEnd) { cout << "对得起我们吗?RNM,退钱!" << endl; } else if (areYouGuysDisappointed) { cout << "太TM失望啦!" << endl; } else if (butWeStilHaveChance) { cout << "已经结束咧!" << endl; } else if (willYouGuysKeepSupporting) { cout << "还有两场能全赢吗?赢不下来吧。很难的啦" << endl; } }
2.1.2 三目运算符
通过三目运算实现简单判断(同 Java 三元运算符)
语法:表达式1 ? 表达式2 : 表达式3
解释:如果 表达式1 为真,则执行表达式2,否则执行表达式3
cout << "哥们,这瓜多少钱一斤?" << endl;
int price;
cin >> price;
cout << (price > 1 ? "这瓜皮子是金子做的还是瓜粒子是金子做的?" : "给我挑一个") << endl;
2.1.3 switch 语句
执行多条分支语句
语法:
switch (条件语句) {
case 条件值:
语句;
break;
case 条件值:
语句;
break;
}
示范:
cout << "树上qi个猴,地下一个猴,问你几个猴" << endl;
int answer;
cin >> answer;
switch (answer) {
case 2:
cout << "树上骑个猴,地下一个猴" << endl;
break;
case 8:
cout << "树上七个猴,地下一个猴" << endl;
break;
default:
cout << "怀孕一个猴" << endl;
break;
}
注意:如果在 switch 语句中不写 break
,会发生 穿透
2.2 循环结构
依据条件是否满足,循环多次执行代码
2.2.1 while 循环语句
语法:while (条件) {循环语句}
示范一个猜数游戏:
int target = rand()%100; //生成 0 - 99 的随机值
int guess = 0;
while (true) {
cout << "请输入您的猜测数字" << endl;
cin >> guess;
if (guess == target) {
break;
}
cout << "您的猜测值" << (guess > target ? "高了" : "低了") << endl;
}
cout << "恭喜您猜对了,值是:" << target << endl;
2.2.2 do…while 循环语句
语法:do {循环语句} while (条件语句)
char ans;
int count = 0;
do {
cout << "(一阵拳打脚踢)" << "说不说?(Y/N)" << endl;
cin >> ans;
} while (count++ < 10);
cout << "说什么?你TM倒是问啊!" << endl;
2.2.3 for 循环语句
语法:for(起始表达式; 条件表达式; 末尾循环体) {循环语句}
for (int n = 0; n < sizeof(heeler) / sizeof(heeler[0]); n++) {
cout << heeler[n] << "合在一起做撒尿牛丸啊笨!" << endl;
if (find) {
break;
}
}
2.2.4 嵌套循环
就是套娃
for (int n = 0; n < 10; n++) {
for (int i = 0; i < n; i++) {
cout << "禁止";
}
cout << "套娃" << endl;
}
2.3 跳转语句
让程序跳跃式地执行代码
2.3.1 break 语句
用于跳出选择结构或循环结构
使用时机:
- 出现在 switch 语句中,作用是终止 case 并跳出 switch。不写的场合发生穿透
- 出现在循环语句中,作用是跳出当前循环语句
- 出现在嵌套循环中,跳出最近的一层循环语句
2.3.2 continue 语句
用以中断本次循环,执行下次循环
for (int i = 0; i <= 100; i++) {
if (i % 2 != 0) {
continue;
}
cout << i << endl;
}
2.3.3 goto 语句
可以无条件跳转语句
语法:goto 标记;
标记:标记名:
解释:如果标记存在,goto 语句执行时会直接跳转到该标记处。
cout << "刻晴来到了山脚下" << endl;
goto tar;
if (false) {
if (false) {
tar:
cout << "迅影如剑!喝!" << endl;
}
cout << "刻晴登上了山顶" << endl;
}
<C++>2 程序流程结构
https://i-melody.github.io/2022/03/28/C++/入门阶段/2 程序流程结构/