C语言——分支与循环(一)

本文详细介绍了C语言中的分支语句(if,ifelse,elseif,switch,break,continue,goto),逻辑运算符(&&,||,!)以及条件运算符(三目运算符),旨在帮助初学者理解和掌握控制程序流程的关键技术。
摘要由CSDN通过智能技术生成

目录

导语

一、分支语句

1、与if相关的分支语句

1.1、if语句

1.2、if else语句

1.3、多重选择类1——else if

1.4、多层嵌套的if语句

1.5、else与if的配对问题

2、与switch相关的分支语句

2.1、多重选择类2——switch语句

2.2、break语句

3.逻辑运算符

3.1、3种逻辑运算符(&&,||,!)

3.2、范围的写法

4.条件运算符

4.1、三目运算符——( ?:)

5.goto语句


导语

    在C语言编程中,我们需要根据我们所设定的条件去控制C语言的运行,为了解决多种多样的现实问题,本文将介绍C语言的两种控制语句:分支与循环。分支语句主要介绍if,switch等,循环语句主要介绍for,while,do while等。同时,为了更好的处理的细节问题,本文还会介绍条件判断运算符,逻辑运算符,break,continue语句,goto语句等。

一、分支语句

1、与if相关的分支语句

1.1、if语句

    if语句的基本结构如上,括号内放入判断条件用于判断情况是否符合条件,是则为真,进入if语句,执行大括号内的语句。否则为假,跳过if语句,继续执行后续的语句。

1.2、if else语句

    如果判断条件为非A即B,我们则可以用到else。

    基本构成如上,因为else语句的判断条件已经确定为非a,则不需要在else后加()放入判断条件。

    执行程序时,我们会先进入if语句的判断,如果符合则进入if内执行if内的语句,否则进入else语句执行里面的代码。

1.3、多重选择类1——else if

    如果有很多种情况,我们就需要用到多重选择else if 语句。

    基本构成如上,我们可以在添加的else if的括号内加入其他几种判断条件,最后的else语句根据自己的要求添加,可以没有。执行过程为先执行条件为a的语句,符合则进入,不符合则跳至下一条else if语句,直至执行完所有分支语句。

1.4、多层嵌套的if语句

    在实际情况中,我们在各类大情况下会细分小的情况,这个时候我们就需要在if语句中嵌套if,else if语句。

基本结构如上,执行时会先进入条件a的if语句,再进入内部的分支语句,执行过程和以上各类情况一致。

1.5、else与if的配对问题

如果出现多个if语句和多个else语句,我们怎么确定哪个if和哪个else配对呢?

下面我们来看一种代码风格差造成的问题。

      如果if语句大括号内只有一条语句,则可以不加大括号,如果该语句为if语句,紧接着一个else语句,就会出现问题。因为编写者下意识的省略,导致本该与if(条件a)配对的else变成了与if(条件b)配对。所以我们应该养成良好的代码风格,不要刻意追求某些便捷。

由上可见,配对规则为:如果没有花括号,else会与离它最近的if匹配,除非if语句被嵌套在其他语句内且被花括号包含(如上图if(条件c)语句)。

2、与switch相关的分支语句

2.1、多重选择类2——switch语句

在上文中我们学习了运用else if语句来完成多种情况,但是,大多数情况下我们使用switch语句会更加方便

基本结构如上,switch括号内一般输入如整形数字,字符等作为标签,程序会用c标签与case 条件1,2,3...进行匹配,如果有相同,则会执行case k冒号后的语句。如果匹配完没有找到相同的标签,则会跳至default语句(其功能与else类似),用于执行剩余的情况,和else一样可以不需要。

2.2、break语句

有时我们只需要满足一种条件即可,不需要执行其他符合条件的情况。这个时候就需要用到break。

如果条件2与标签匹配,则执行语句2,语句2执行完后执行break语句,break的执行原理为跳出之后的switch判断,跳过之后的case3...case n,即直接跳出switch语句,执行语句5。但是如果case条件2 没有break语句,则会继续进行标签匹配,执行符合条件的case语句。

3.逻辑运算符

3.1、3种逻辑运算符(&&,||,!)

&&代表与,||代表或,!代表非。

eg:a>b&&b>c,  条件1&&条件2只有在两条件都为真时才成立。

eg:a>b||b>c,  条件1||条件2,只需要两个条件满足其一即可成立。

eg:a>b为真,则!(a>b)为假,我们所用的不等于号就是!=。

优先级:!的优先级仅次于圆括号,&&的优先级高于||,但都比关系运算符(>,<,=)低,高于赋值运算符。

3.2、范围的写法

在数学上,我们经常写成a<b<c,但是在C语言中,我们需要用到&&符号。

如a<b<c则写成(a<b&&b<c)才正确。abc可以为数字,可以为字符,如判断是否为小写字母可以写成(c>='a'&&c<='z')才对。

4.条件运算符

4.1、三目运算符——( ?:)

当我们遇到二选一问题时,我们可以用if和else语句做出选择,我们也可以用三目运算符,从而有效减少代码量。使代码更简洁美观。

如下两种写法:

在三目运算符中,先判断实际情况是否符合条件,如果是,则为真,执行表达式1,否则为假,执行表达式2。如果情况较为简单,如取a,b两数较大值我们可以写成 c=(a>b)?a:b ,用三目运算符可以简化代码。

5.goto语句

goto语句有两个部分,goto和标签名。

基本形式为: lable1:语句....;

                       goto lable1;

通过在目标语句贴上标签,再用goto回到lable标记的语句。原则上是不在C语言中使用goto语句,因为标签变多时会导致标签错乱,使系统变混乱。C语言通常使用break和continue语句来代替goto语句。下一篇文章将介绍continue以及break语句在循环结构中的运用。

分支与循环(一)的分支部分就先到这里,下一篇分支与循环(二)会讲解循环语句。

希望这篇文章对你有帮助。第一次写博客,如有错误或者不足,望指出,感谢各位的浏览。

                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值