讲讲c语言的分支和循环——分支结构

我们都知道c语言是一门结构化的编程语言,而这里的结构通常指的是顺序结构、选择结构和循环结构。那我们应该如何用编程语言描述这三种结构?我们接下来一起探讨一下。

目录

 一、if语句

1.1 if 

1.2 else

1.3 分支中包含多条语句

1.4 嵌套if

1.5 悬空else问题

二、switch语句

2.1 switch

2.2 switch语句中的break

2.3 switch语句中的default

2.4 switch语句中的case和default的顺序问题


 一、if语句

1.1 if 

首先我们要知道if语句的语法形式:

if(表达式)
   语句

当表达式为真(成立),则语句执行;

当表达式为假(不成立),则语句不执行;

此时我们知道在c语言中,0表示假,非0表示真,所以结合上面的语句,如果表达式的结果为0,则代表表达式为假,语句不执行;但如果表达式的结果不是0,代表表达式为真,语句可以执行。

if语句执行流程:

1.2 else

当一个问题出现两种情况的时候,我们如果想要表达出两种答案,就需要用到if..else..语句

语法形式:

if (表达式)
   语句1
else
   语句2

1.3 分支中包含多条语句

当一个分支中包含多条语句时,我们要记得if语句只能控制一条语句,所以在大家写代码时,如果

使用if语句后面包含了多条语句,要记得使用{}将代码括起来,else后面也可以跟上{}。如果不加上

{},那无论那无论条件是否成立,都会被执行。

1.4 嵌套if

在if else语句中,else可以与另一个if语句连用,形成一个多重判断。就比如:

if(表达式)
  printf()
else if(表达式)
  printf()
else if(表达式)
  printf()

1.5 悬空else问题

如果一个代码中有多个if和else,要记住:else总是和最接近的if匹配;

所以在大家自己写代码的时候,要注意自己的代码排版,不要想当然的认为这个else就应该和if匹配,编程器不是按照你的想法去执行,而是要根据你的代码去完成操作,所以为了避免这类问题的发生,在写代码的时候要带上适当的大括号{},这样的会让代码的逻辑更加清晰,让代码的可读性更高,降低错误率。

二、switch语句

2.1 switch

除了我们刚刚提到的if语句之外,在c语言中我们还可以使用switch语句来实现分支结构。

switch语句其实就是一种特殊形式的if...else结构,同样是可以用于判断条件有多种结果。

相比于多重的else if语句,switch语句更易用、可读性更多。

语法形式:

switch(表达式)
{  case value1:statement
   case value2:statement
   default:statement
}

注意:

在我们使用switch语句的时候,表达式必须是整型表达式;

case后的值,必须是整形常量表达式;

case和后面的数字之间必须有空格;

2.2 switch语句中的break

每一个case语句中的代码执行完成后,需要加上break,才能跳出switch语句。

现在让我们思考一下,如果我们去掉case语句中的break,会出现怎么样的情况?

结果是如果某一个case语句的后面没有break语句,代码会继续往下执行,并有可能执行其他case语句中的代码。所以说在switch语句中break语句非常重要,能实现真正的分支效果。然而,break也不是每一个case语句都要有,看具体情况。

2.3 switch语句中的default

大家使用switch语句的时候,会不会出现一种情况:switch后面的表达式中的值无法匹配代码case语句的时候。当碰到这种情况的时候要不就不做处理,要不就在switch语句中加入default子句。

switch(表达式)
{  case value1:statement
   case value2:statement
   default:statement
}

就比如标准形式,如果switch后面的expression的结果不是value,与不是value2的时候,就会执行default子句。

2.4 switch语句中的case和default的顺序问题

在这里要强调一下,在switch语句中case语句和default语句是没有顺序要求的,只要代码符合实际要求就行,为了方便观看,一般通常将default子句放在最后处理。

(接下来的循环结构我会在下一篇详细写)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值