<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 程序流程结构/
作者
Melody
发布于
2022年3月28日
许可协议