C语言中的分支语句

   C语言是结构化的程序设计语言,C语言中的结构可以分为顺序结构、选择(分支)结构、循环结构。对于分支结构,我们可以用if语句和switch语句来完成分支

#1.if语句:

  if语句在分支语句里是分支语句中使用频率最高的一个语句。

if语句的基本结构是:

          

  这里的下划线不必理会,读者能看出结构就可以。

  可以看出if的结构由判断条件和语句块构成,当条件为真(括号逻辑判断为真或者是非零数)时语句块执行,条件为假(括号里逻辑判断为假或者是零时)时语句不执行。

 

    如果if控制的语句块中只有一条语句,{}可以省略:

  在上面的程序中,if后面没有{}将语句块括起来,我们看到if后面的括号里是零, 因此第一条printf语句没用执行,但是第二条printf却执行了,由此我们可以看出,if函数默认只控制if后面跟的第一条语句,若要控制多条语句,就必须用{}把语句括起来

##if……else……结构

  if函数还能和else语句搭配。形成if……else……的结构。

我们将这个程序跑起来:

 

  我们看到,a等于1,不等于零,所以if后面的语句没有执行。而else控制的语句执行了

  if…… else……的结构表示的意思是:如果if中的条件是真,就执行if控制的语句,否则就执行else控制的语句。

  ##if……elseif……else……复合结构

  我们经常遇到多次判断,即判断后再判断的情况,比如:

  “12~18岁是青少年,18~35岁是青年,35~55是壮年”,如果一个人的年龄在12到55岁之间(下面的程序以25岁为例)我们首先要判断他是不是在12~18岁之间,不是,那我们再判断是不是在18~35岁之间,如果都不在,那就一定在35到55之间。

  对于这种问题,我们就可以使用if……elseif……else……复合结构

   上面的程序相当于在第一个if配套的else语句里有嵌套了一个if……else……语句,等价于下面的程序

  这样的结构我们称为if…else…的复合结构。

#2.switch语句:

  switch的基本格式:

switch后面的括号里的表达式会得出一个整型类型的值,对应下方case后面的不同的value值,进而控制case后面的语句的执行

下面给出例子

   switch后面的表达式(3-2)的结果是1,则case 1 对应的语句会执行,我们跑起来试试

  哎,我们看到,不只是case1对应的语句被执行了,后面的语句都被执行了!

  怎么回事呢?其实啊,switch后面的表达式的结果只决定了程序从哪一个case开始执行,并不是只执行某一个case。

##break语句

  那我们想只让程序执行某一个特定的case要怎么办呢?这时候就是break语句登场的时候了!我们只要在每个case的后面加上一个break,每次程序执行完一个case语句后就会遇到break,跳出switch语句,后面的case也就不会被执行了。

break语句也经常用在循环结构里,用来跳出循环,因为不是这一章节的重点,所以不在本篇赘述 

 ##default语句

  更进一步地,我们发现case后面必须给上一个具体的整型才能对应上switch后面的表达式的结果,但是在很多情况下我们并不能做到每一种情况都一一地列举出来,有的可能列举完敲代码的手都敲断了。

 那怎么避免这种情况发生呢?用default语句~

  default语句在switch表达式的结果找不到对应的case的时候执行

  我们在switch语句的某个地方加上一个default语句(理论上在与case同一级的哪个位置加入都可以,但一般加在switch的末尾,会更符合逻辑回路)

 在这个例子中,switch后面的表达式的结果是7,但是下面并没有case 9 来与它对应,这个时候就执行default语句(当default语句放在最后的时候default后面可以不跟beak语句,因为default语句结束后switch语句也就结束了,同理,最后一个case语句也是一样的)

完.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值