C语言(四)—— 分支和跳转(选择结构和转移语句)


选择结构和转移语句

if 语句

if语句是用来实现双分支选择结构的语句。
一般形式:
if(逻辑量)
	语句1
else
	语句2

if和else是构成if 语句的关键字,语句中的逻辑量是选择结构的条件,else和语句2可以省略。
语句1和语句2都只能是单条语句,如果在逻辑量为真或为假的分支中需执行多个操作,应该使用复合语句将多个操作构成一条语句。

条件表达式

  1. 条件运算符

     由两个符号“?”和“:”复合而成,是C语言中唯一的三目运算符。
    

第一目写在“?”之前,是逻辑量,第二目写在“?”和“:”中间,是数据,第三目写在“:”之后,是数据。条件运算符的优先级只比赋值运算符和逗号运算符高,结合性为右结合

  1. 条件表达式

     用条件运算符将运算对象连接起来的符合C语言规则的表达式。
    

运算过程:先判断第1目逻辑量,如果逻辑量为真,选取第2目的结果作为整个表达式的值,否则选取第3目结果作为整个表达式的值。
条件表达式中存在类型的自动转换,条件表达式的值的类型是第2目和第3目中类型较高的运算对象的类型

  1. 条件表达式运算的短路

if 语句的嵌套

if 语句的嵌套中,会有多个if和多个else。按照if 语句的规则if和else中间只能有一条语句,嵌套的if 语句中else总是和它前面最近的没有和其它else配对的if配对

switch 语句

C语言提供了专门处理多分支选择结构的switch语句,又称为开关语句。

在switch 语句实现的多分支选择结构中,不同的分支通过不同的常量来标识,因此使用switch 语句实现多分支选择结构时,首要的任务是构造表达式,使得该表达式的取值可以唯一明确某一分支。
具体形式:

switch(表达式)
{
	case 常量1: 语句组1
	case 常量2: 语句组2
	···
	case 常量n: 语句组n
	default : 语句组n+1
}

其中switch、case、default是switch 语句的关键字。“{}”内是switch 语句的语句体,不表示复合语句。switch后面括号里的表达式的值可以是任意类型,系统会自动转换为整型或字符型。case之后只能是常量或常量表达式,不能是变量或其它表达式,其值就是switch后括号内的表达式的各种可能的取值,各个常量应互不相同。语句组可以是多条语句,也可以没有语句,不需要用“{}”括起来构成复合语句。语句组中可以使用“break;”语句,它的作用是终止switch 语句的执行,转向执行switch 语句的后续语句。

switch 语句执行时,先求解switch后面括号里的表达式的值,然后用表达式的值和case后面的常量逐一进行比较,如果表达式的值和某一个case后面的常量相等,则由此进入switch 语句,开始顺次执行后面所有的可执行语句,如果和所有的case后面的常量都不相符,就由default后面的语句进入开始执行,直到遇到switch 语句结束的“}”或者遇到“break;”语句,结束switch 语句的执行。

  1. case和case之后的常量之间必须有空格
  2. 如果多个常量用来标识同一个分支,要用多个case来标识,不能省略
  3. “case 常量:”之后可以有多条语句,不需要用“{}”括起来。
  4. “case 常量:”之后也可以一条语句都没有。
  5. default 语句可以放在任意位置上。default 语句所处的位置不影响switch 语句的执行方式。
  6. switch 语句中右大括号之前必须有语句,如果没有则应用空语句来完善程序结构

break 和 continue 语句

break 语句

break 语句只能使用在 switch语句的语句体 和 循环体语句 中。

break 语句在循环体中的作用是结束循环,继续执行循环的后续语句。break
语句在循环体中必须和if 语句配合使用,才不会破坏循环语句的作用

continue 语句

continue 语句只能使用在 循环体语句 中。

continue 语句的功能是结束本次循环,即不再执行循环体中continue 语句之后的语句,转入下一次循环执行。
continue 语句只结束本层本次的循环,并不终止循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值