学习笔记——C语言——分支结构

目录

一、C语言的结构

二、分支结构

三、Q&A


一、C语言的结构

C语言主要有以下三种结构

1. 顺序结构

程序按照顺序执行,从头到尾一句接着一句的执行下来,执行完上一个语句就会自动执行下一个语句,直到执行完最后一句程序结束。是一种简单且基础的结构。

2. 分支结构

程序通过设定的条件来判断结果选择分支方向,包括单分支与多分支。C语言中主要使用if语句和switch语句实现选择结构

3. 循环结构

程序通过设定的条件来判断结果是重复执行部分特定程序或终止。C语言中主要使用while语句,for语句和do while 语句来实现循环结构

二、分支结构

1.if 语句

0bc4ea003c3f41d1a5a04322223602dd.png

其基本用法如上图所示,if后的括号内填写执行条件,下面一行为执行内容。当执行条件为时,if执行以下内容,反之,当执行条件为时,if则不会执行。

在C语言中,除了使用判别式来设定条件外,还可以用数字来判定真假,“0”代表非零代表

如下图所示

0d7363a0830a44a7b34b52998838c2bd.png

25a916f217ba429fa6befd8765f575d1.png 

1f58c784092049139876b9008bb7f9f1.png 

83ee20e73e0d407db75b12b66822534e.png 

 

 

❗️注意:1.在设定执行条件时,要使用关系操作符

其中最易出错的是判断相等的符号不是“=”而是“==”,这会引发如下问题

8a88c870d88949f49bfb6a36f4ac494f.png

a0ac25d185044fa5afe0ff71204802a9.png 

可以看到当a的值不为2时,if依旧执行了程序,打印了“haha”,这是因为"= "是赋值符号,a =2实质上是将2赋给了a,因此,这时if的括号内其实只是一个数字2,由于2是个非0数,if判断其为真,执行了程序。正确写法如下:

720a524b5b5e4fc18f7b9c19b1720d17.png

2.如果不加大括号,那么if的执行内容默认只有后面紧跟的那一行代码

在if语句中,if通常与else一起使用,如下图所示

f9769daaf5fa4c70979cf954a853a6f9.png

9a49ab88c28543528da5435bdc358f83.png 

当if的执行条件不满足时,程序便会执行else的内容,与if一样,else的执行内容只有一行,若需扩充内容要使用大括号。

❗️注意:else只与跟它距离最近的if搭配,如下图所示

8df134d56c65416f981bcce12be4ae4a.png

8a0e1a07be404c71a0a185c3d842f4f8.png 

在初学者看来,上面程序执行逻辑应当是:先判断第一个if,发现a并不为1,于是执行else,打印“haha",然而,我们可以看到结果其实是什么都没打印。这是因为else只与最近的if相关联,因此可将第二个if和else视为一个整体,嵌套于第一个if之中,所以当a不为1时,其之后的程序都不再执行了。

从以上事例我们可以了解到if语句是可以嵌套使用的,此外,它还可以进行多重判断,如下图所示

bd45313778454d778055c1a7c622f32b.png

2、switch语句

 9f40692533944e8b8f32675a5444695a.png

其基本用法如上图所示,switch后的括号内为表达式(整型表达式),case后的值为表达式所对应的结果(该值也得为整型),当表达式的值与case后的值相同时,该case后的语句就会被执行,因此,switch语句更适合用于多分支的情况下。

但如果直接运行上述程序,其结果为:

f22b5220a449492d9ac4ed47f371bf69.png

 若想避免该情况,需要在一个case语句后加上break,来让它跳出switch语句。

2386142217a54b1a9ac84a00948544b5.png

133876c695ac45f0a6f4f724b3e310f5.png 

当然,case语句不可能例举所有的情况,当switch后的表达式无法匹配case语句时,可以用default语句来执行程序(类似于if中的else),即case语句以外的所有情况都由default执行。如下图所示:

a13b8fb360fd400b861fd7c6fb7f9b05.png

bf09e99d3314479b8b829c14f25e9c35.png 

e30d2d1409a8471982e4e869bafe2ec4.png 

7ed04134fcc84338a7d5eb7cef063715.png 

 

三、Q&A

 1.条件何为真, 何为假?

答:在条件判断中,“0”代表非零代表真,

当表达式条件满足时,会被程序视为非零数1来处理

2. if语句执行流程?else语句可以写多个吗?

答:If语句先进行条件判断,为真则执行,为假则执行else内容或停止。在一个if程序中,可以有多条else if 语句,但else语句只有一个。

3.switch后的表达式类型是什么?

答:为整型表达式

4. case后面值的类型是什么?(注意case和值之间一定要有空格)

答:为整型类型

5. default?swtich的运行顺序是什么?

答:事实上,default语句可以放在swtich语句中的任意位置,无论是放在开头还是结尾都不会影响程序的运行,但在一般情况下,我们默认将其放在最后。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值