(C语言)if语句详解,理清逻辑,if语句随便用

基本结构

首先C语言程序由三种基本结构形成

1顺序结构:按照程序顺序执行

2选择结构:根据判断结果选择分支方向

3循环结构:给与一个循环体,可根据判断条件决定循环多少次

而if语句则是用来实现选择结构(分支结构)的一种分支语句

if语句的分支形式

1,单分支(最基本形式)

1   if(条件表达式)--------执行条件

2   statement 1--------执行

例如:

2,双分支(即if···else···)

1  if(表达式1)

2  statement 1

3  else

4  statement 2

当表达式1的结果为假(0)时,执行else中的statement 2.

例如:

3,多重分支(本人认为“灰常”重要)

多重判断的实现需要if语句的嵌套,即if else语句中else 与另一个if连用,并且我将多重分支的逻辑总结为两大类:

1,并列类:每个表达式并行存在,其中一个为真时执行

2,前提类:由if(表达式)构成的一个个前提进行分支的局部限定

这里有两个图解帮助理解

并列类:

前提类:

并列类if代码格式

1 if(条件表达式1)----执行条件

2 statement 1-----执行

3 else if(条件表达式2)

4 statement 2

5 else if (条件表达式3)

6 statement 3

7.......

. .......

n return 0

例如

我们需要注意一个点,if语句中if和else一般都只能控制1条语句,

即图中任意一条printf(“薪资水平”),如果我们想要一条if语句控制多条语句则应该用“{}”(大括号)将代码括起来,实现控制多条语句目的

同时通过养成写完if()条件后加大括号{}的习惯,可以使我们的代码更有条理更清楚,可以让我在以后写复杂if语句时减少报错与失误

以下是if语句加上{}的代码展示:可以很清楚看到薪资10000时执行的多条语句

前提类if代码格式

1 if(条件表达式1)------大前提

2 if(条件表达式2)------小前提

3 statement 2------执行

4

例如

上图中便是一个很典型的前提类,由“任意两边之和大于第三边”大前提,“任意两边相等”为此成立三角形大前提下的一个小前提

4悬空else问题

当面对悬空else时,我们需要记住:当存在多个if和else时,else 总是跟最接近 的 if 匹配。

希望下面这个列子能帮你理解什么是else悬空

很多人看见给a赋值为0后,直接开始判断a不等于1,认为程序执行else语句打印“haha”,但结果时什么都没有打印。为什么呢?此种情况便是else悬空问题。因为else跟第一个if是对齐的,所以我们会觉得else和第一个if匹配,但回到我先开始讲的那个原则就可以知道此时else是跟它最近的那个if(b==2)匹配的,所以结果为:什么都不输出.

如果我们想要很清楚的表现else与if的匹配关系可以像这样使用大括号{},使我们的代码逻辑鲜明

5总结

我相信各位在看完后不难理解if语句的相关逻辑,但在if的多重分支书写时我们还是会出现很多问题,所以我再次推荐大家使用{}大括号来规范化,逻辑化地展现我们的if语句,同时减少代码逻辑出错

这便是紫薇君对于if的一点拙见,如果觉得写得不错的话留下你的点赞再走吧!

  • 29
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫檀星君 •́.•̀ 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值