一、$ if $ 选择结构

Ⅰ. $ if $ 语句

使用方式:

if (条件表达式) {执行内容}
if (a<=10) {a++;}

当 $ \color{red}{条件表达式} $ 成立时,$ \color{red}{执行内容} $ 才会被执行,否则会被跳过。

Ⅱ. $ else $ 语句

使用方式:

if (条件表达式) {执行内容1}
else {执行内容2}

if (a<=10) {a++;}
else {a--;}

当 $ \color{red}{条件表达式} $ 成立时,$ \color{red}{执行内容1} $ 会被执行,否则 $ \color{red}{执行内容2} $ 会被执行。

和 $ Pascal $ 相同,$ C++ $ 中 $ if $ 也可以嵌套。

Ⅲ. 三目运算符 $ ?: $

使用方式:

变量=条件表达式?值1:值2;

a=3==9?1:2;
结果:a=2

当 $ \color{red}{条件表达式} $ 成立时,变量为 $ \color{red}{值1} $ ,否则变量为 $ \color{red}{值2} $ 。

二、$ switch $ 选择结构

使用方式:

switch (表达式)
{
case 常量表达式1:
     执行内容1;
     break;
case 常量表达式2:
     执行内容2;
     break;
case 常量表达式3:
     执行内容3;
     break;
......
default:
     执行内容n;
}

a=1;
switch (a)
    {
    case 2:
        printf("b");
    case 1:
        printf("a");
    }
输出:a

a=1;
switch (a)
    {
    case 1:
        printf("a");
    case 2:
        printf("b");
    }
输出:ab

$ switch $ 语句执行过程分为以下 $ 3 $ 步:

①计算出 $ switch $ 后面圆括号内表达式的值,假定为 $ M $ ,若它不是整型,系统将自动舍去其小数部分,只取其整数部分作为结果值。

②依次计算出每个 $ case $ 后常量表达式的值,假定它们为 $ M_1,M_2,\cdots $ ,同样若它们的值不是整型,则自动转换为整型。

③让 $ M $ 依次同 $ M_1,M_2,\cdots $ 进行比较,一旦遇到 $ M $ 与某个值相等,则就从对应标号的语句开始执行;在碰不到相等的情况下,若存在 $ default $ 语句,则就执行其冒号后面的语句序列,否则不执行任何操作;当执行到复合语句最后的右花括号时就结束整个 $ switch $ 语句的执行。