Care and diligence bring luck. Judge each day not by the harvest you reap but by the seeds you plant. 每一个程序都是由一条条语句组成,为了结构化程序设计,这里就引入了三种基本结构:顺序结构、选择结构、循环结构。顺序结构也就是从上而下,线性有序地依次执行,比如之前的 Hello World 程序,选择结构即根据条件成立与否选择程序执行的线路,循环结构的话就是重复执行一个或几个模块,直到条件满足跳出为止。下面就着重介绍第二个结构 —— 选择结构 选择结构用于判断给定的条件,根据判断的结果来确认某些条件是否成立,进而控制程序的流程,即如果判断成立,则执行下面的语句,否则执行另外分支的语句。C++ 提供了三种选择结构:if 选择结构、if-else 选择结构、switch选择结构
if(表达式) 语句块; if( 2>1 ) { cout < 'ok';="" ="" }="" ="" cout=""><> 注: 表达式必须用圆括号括起来,不可省略 语句块如果只有一条语句可以省略外面的花括号
相对于 if(表达式) 当表达式成立时执行的语句块; else 当表达式不成立时执行的语句块; if( 2>1 ) cout < 'ok';="" ="" else="" ="" ="" ="" cout=""><> 注: 表达式必须用圆括号括起来,不可省略 语句块如果只有一条语句可以省略外面的花括号 嵌套的
if(表达式1) { if(表达式2) 语句块1; } else 语句块2; 注: 嵌套的 if 语句在花括号内,下面的 else 和最外面的 if 组成一队 当 if 语句嵌套时且无花括号存在,else 总是和最近的 if 语句配对 if(表达式1) if(表达式2) 语句块1; else 语句块2; else 语句块3; 注: else 和最近的 if 配对,所以内部的 if 与 else 先配对,之后外部的配对 if(表达式1) 语句块1; else if(表达式2) 语句块2; 注: if 与 else if 连用的情况多用于 测试多种条件 一个 if 后可跟 零个 或 一个 else,else 必须在所有 else if 之后 一个 if 后可跟 零个 或 多个 else if,else if 必须在 else 之前。 一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试 三目运算符(? :) C++ 中唯一一个需要 3 个操作数的操作符,常用来代替 if-else 语句使代码变得简洁,该操作符也称为 条件运算符 或 条件表达式 ,通常格式如下 b ? x : y 先计算条件b,然后进行判断,如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式从不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行 a ? b : c ? d : e // 执行顺序,从右往左 a ? b : ( c ? d : e ) 条件运算符通常用于 赋值 或 输出语句中由于条件不同输出不同 // 赋值 int max = (a>b) ? a : b ; // 输出语句 cout < (="" (2="">1) ? 'OK' : 'Okey' ) <> 注: 在 cout 输出语句中,用于输出的表达式必须用括号括起来 cout < (a+b)=""><>
switch(表达式) { case 常量表达式1: 语句块1; break; 分析: 首先在 注: 语句中可以出现一个或多个 case,但是只能有一次 default 或省略 default 部分,default 语句可以出现在任何位置,不一定在最后 多个 case 允许使用在同一个语句块前面 case 1: case 2: cout < 'ok'="">< endl;="" =""> switch 的表达式只能为 int 或 char 型数据, 当为 char 型数据时会将字符转化为相应的 ASCII 码值, 对于 字符串、浮点型 等不能作为 switch 的表达式 常量表达式中不能出现变量,一般为 常数 或 字符,每个常量表达式的值不能相同 case 后面的语句块可以是 一条 或 多条 语句, 且无需用 花括号 括起来, 因为它会自动从符合结果的 case 处自动向下执行 case 语句中允许嵌套 switch 语句 switch(表达式) { case 常量表达式1: switch(表达式2) { case 常量表达式2: 语句块; break; case 常量表达式3: 语句块; break; ... } break; case 常量表达式4: 语句块; break; ... 在线OJ —— 1.4 编程基础之逻辑表达式与条件分支 http://noi./ |
|