选择结构 ■ if语句 ■ 三目运算符 ■ switch语句

□ 作用

执行满足条件的语句

□ if语句的三种形式

▶ 单行格式if语句

▶ 多行格式if语句

▶ 多条件的if语句

▶ 嵌套if语句

□ 单行格式if语句

if(条件)
{
    条件满足执行的语句
}

注意:if条件后面不要加分号

if(条件);
{
    条件满足执行的语句  //不管是否符合条件,中括号里的代码都会执行
}

□ 多行格式if语句

if(条件)
{
    条件满足执行的语句
} 
else 
{
    条件不满足执行的语句
}

□ 多条件的if语句

if(条件1)
{
    条件1满足执行的语句
} 
else if(条件2)
{
    条件2满足执行的语句
} 
else if(条件3)
{
    条件3满足执行的语句
}
else 
{
    上述条件3都不满足执行的语句
}

□ 嵌套if语句

if(条件1)
{
    条件1满足执行的语句

    if(条件4) 
    {
        条件4满足执行的语句
    }
} 
else if(条件2)
{
    条件2满足执行的语句
} 
else if(条件3)
{
    条件3满足执行的语句
}
else 
{
    上述条件3都不满足执行的语句
}

■ 三目运算符

□ 作用

通过三目运算符实现简单的判断

□ 语法

表达式1?表达式2:表达式3

如果表达式1位真,则执行表达式2,并返回表达式2的结果
如果表达式1位假,则执行表达式3,并返回表达式3的结果

int a = 10;
int b = 20;
int c = 0;

c = (a > b ? a : b);  //c的值是20
(a < b ? a : b) = 100; //a的值是100,b的值是20

■ switch语句

□ 作用

执行多条件分支语句

□ 语法

switch(表达式)
{
  case 结果1: 执行语句;break;
  case 结果2: 执行语句;break;
  case 结果3: 执行语句;break;
  ...
  default: 执行语句;break;
}

□ 注意

1) case中如果没有break,那么程序会一直向下执行

2) switch分支判断里,case关键字后只能是整型或者字符型

switch (a)
{    
    case a > 6 && a < 15 : cout << "222" << endl; break; //报错,必须是整型或字符型
    case 10 : cout << "111" << endl; break;
    default:break;
}

□ 总结

与if语句比较,switch语句结构清晰,执行效率高,但不可以指定区间,而if语句是可以在条件里指定区间的