分支和循环(上)

目录:


1. if语句

2. 操作符

3. switch语句

4. while循环

5. for循环

6. do-while循环

7. break和continue语句

8. goto语句


C语言是结构化的程序设计语言,这里的结构指的是顺序结构、分支(选择)结构、循环结构

分支结构主要有:if、switch        循环结构主要有:while、for、do-while

1. if语句

1.1 if

if语句的语法形式如下:

在C语言中,0表示假,非零表示真,当表达式的值为真时才能执行 if 下的语句。

例如:if(3>2)表达式3>2为真;当表达式3<2时为假

1.2 if else 

else:可以理解为否则的意思,当if表达式为假时才会执行else下的语句。

1.3 嵌套if

if 和 else 默认后面只跟一条语句,当有多条语句或进行if嵌套时要用{}括起来;

else 的匹配与对齐方式无关,只与离它最近的if 进行匹配。

上图蓝色部分是嵌套在else语句中的if语句,构成多层判断,此部分还可以把{}去掉简写成下图形式,代码意思是:输入一个数,如果等于0输出值是0,后面代码不再执行;否则再进一步判断是正数还是负数。

2. 操作符

操作符一般用于表达式中。

2.1 关系操作符

用于表达两者之间关系的称为关系操作符,主要有:>、<、==、>=、<=、!=。

注意:

C语言中表示等于用==,表示赋值用=,切记不要写错;在判断两数是否相等时为防止手快打错一般把常量放前面,例如:if (3 == n)

另⼀个需要避免的错误是:多个关系运算符不宜连⽤。  i < j < k,后期代码不易调试。

2.2 条件操作符

也称为三目操作符,因为有三个操作数(exp1 ? exp2 : exp3

如果exp1 成立执行exp2,否则执行exp3

例题代码:

2.3 逻辑操作符

逻辑操作符:逻辑与(&&)、逻辑或(| |) 、逻辑非(!)

逻辑与(&&):两侧表达式都为真,才为真;一边为假则整个表达式为假

if (((a + b) > c) && ((a + c) > b) && ((b + c) > a))  可理解为:必须同时满足三个灰色部分条件,表达式才为真,执行if 语句,有一个不满足则为假。

逻辑或(| |):两侧表达式都为假,才为假;一边为真则整个表达式为真

if( (b != c)) || ((a == c) )可理解为只要满足其中一个条件就可执行 if下的语句

逻辑非(!):表达式为假则为真,为真则为假

i 一开始赋值为0表示假,当在i前面加上!,表达式为真执行 if 下的语句,打印haha

2.3-1 短路

&&:

if(month >= 3 && month <= 5):如果month >= 3为假,整个表达式为假&&右边不再计算,反之为真就继续判断右边表达式;

| |:
if (month == 12 || month== 1 || month ==2):如果month == 12为真,整个表达式为真,不再计
算;反之继续判断。

3. switch语句

也称开关语句。句式如下

expression可理解为打开开关的按键,根据表达式 expression 不同的值,执⾏相应的 case 分⽀,若值无法匹配则执行default下的语句;

expression只能是整型表达式

case后只能是整型常量表达式(不能是变量,也不能是浮点数或其他类型)

在switch中default 和 case的位置可以随意,一般将default放最后

switch语句通过break终止,若没有break会一直执行到遇到break语句或整个switch结束为止

4. while循环

语法结构和if 很像,区别在于if表达式为真执行一次语句就结束了,而while只要表达式为真就一直循环执行语句。

使用while循环必须有跳出循环的条件,不然表达式恒为真将会造成死循环

有多条语句加{}

代码例题:

5. for循环

5.1 语法形式如下

表达式1:用于循环变量的初始化

表达式2:用于循环变量结束的条件判断

表达式3:用于循环变量的调整

for循环首先执行表达式1进行变量初始化;接着判断表达式2是否为真,为真执行语句内容,为假跳出循环;循环语句执行完最后执行表达式3,调整变量的值;然后就一直循环表达式2和表达式3,直至表达式2为假跳出循环。其中表达式1(循环变量的初始化)在整个for循环中只执行一次。

5.2 while和for的区别

有人可能会问while和for都是循环,到底哪一个好用,他们又有什么区别?

(1)while和for的选择要根据个人的实际问题需求来定,大多情况用for循环比较多;

(2)while和for循环都要包含循环变量初始化、判断和调整,在语法中,支持for循环这三部分都省略;认真观察的同学会发现while循环的这三个部分分散,若代码行数增多三者相距较远不易于调试修改,而for循环的三个部分紧凑易修改。

6. do-while循环

do-while循环是使用最少的一种循环,语法形式如下:当有多条语句同样加{}

相比while和for循环,只有在表达式为真时才执行语句内容,do-while则不管三七二十一先执行do下的语句再到while中判断是否表达式为真继续执行语句。所以使用do-while循环,代码至少运行一次。

7. break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break continue 两个关键字,就是应⽤到循环中的。

break跳出整个循环,continue跳过本次循环后面的代码

其实在前面switch语句中就有提到过break,相信大家不太陌生,其中continue在while和for循环中略有不同。

7.1 continue在for中:

上图可以看到i的调整部分放在了continue后,而continue会跳过本次循环后的代码,直接去到判断部分,i的调整被跳过就一直死循环。

7.2 continue在for循环中

对比while循环,同样是打印1-10的数字,同样是加了continue,结果却大不同。

因为for循环的continue只是跳过了本次循环数值的打印,并没有跳过调整部分,所以循环将继续判断,直到表达式为假整个循环结束。

从以上例子也可进一步体现出同一个需求可以用不同的循环实现,具体选择哪一个得看个人

break和continue只能用在分支和循环中,切记不可用来结束函数的调用!!!

8. goto语句

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数
内跳转到设置好的标号处。
例如:
我们可以看到程序从上至下执行到goto语句时,会跳转到标号next处继续执行代码,直到程序结束。
在代码中不建议大量的用goto语句,因为其跳来跳去的功能容易使程序出现混乱,破坏程序原有的逻辑
当然,goto语句也不是一文不值,当多层循环深度嵌套时,可以用goto语句跳出
可能有人又会问,不是有break?
break只能跳出一层循环,当多层循环深度嵌套时,用goto跳过多层去到指定位置来的更方便。
最后,感谢各位的观看与支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值