C语言之分支与循环

一、分支语句

1.if 语句

if ( 表达式 )

语句;

表达式成⽴(为真 即非0),则语句执⾏,表达式不成⽴(为假 即0),则语句不执⾏

注意:if后面默认有一个语句 多个语句要加花括号

2.if else语句

if ( 表达式 )

语句 1

else

语句 2

注意:else也是默认只控制一条语句,多条语句要加花括号

嵌套if else

(1)else if形式:构成多重选择,与switch语句意思相同。

(2)if里面再嵌套个if..else:可以用于一个大的限制条件下对事件结果的判断。

注意: else 总是跟最接近的 if 匹配。

4.switch语句

switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重

的 else if 改成更易⽤、可读性更好的形式。

基本形式:
switch (expression)
{
case value1: statement
case value2: statement
default : statement
}
注:
• switch 后的 expression 必须是整型表达式
• case 后的值,必须是整形常量表达式

break:
在 switch 语句中使⽤ break 才能在跳出 switch 语句。
注意:
如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执⾏,有可能执⾏其他 case
语句中的代码,直到遇到 break 语句或者 switch 语句结束。

default语句
在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹
配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊
default ⼦句。
case和default顺序问题:
一般没有先后之分,但习惯在最后加default。
case后数字顺序也没讲究。

二、循环语句

1.while循环

while ( 表达式 )

语句 ; // 如果循环体想包含更多的语句,可以加上⼤括号.

例题:输⼊⼀个正的整数,逆序打印这个整数的每⼀位

2.do while 循环

do

{语句};

while ( 表达式 ) ;

  由于do while是先做再判断,所以他的循环体至少循环一次。

例题:输⼊⼀个正整数,计算这个整数是⼏位数

由于n即使是 0,也是1位数,要统计位数的,故此处用do while比较好。

3.for循环

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:

for ( 表达式 1 ; 表达式 2 ; 表达式 3 )

语句;

注:三部分都可以省略,但可能会出现bug;判断部分省略恒为真

本来想打印25个hehe 但是没有初始化j.
注意: for循环遇到continue后是到表达式3 而while和do while 是到判断部分。

for循环和while循环的对比

(1)for 循环的三个部分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形 式上 for 循环要更优⼀些。

  (2)如果知道循环次数选for,反之选while。

(3)while与do while只是do whlie先执行再判断无其他区别。

4.break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break 和 continue 两个关键字,就是应该到循环中的。
• break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执
⾏。
• continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所
差异的。

5.循环的嵌套

当一个事件需要多个量重复相互作用时可以考虑嵌套。

例题 :找出100~200之间的素数,并打印在屏幕上

这里flag的作用是作为标记。

6.goto语句

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数
内跳转到设置好的标号处。
goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了。
如:
for (...)
{
for (...)
{
for (...)
{
if (disaster)
goto error;
}
}

  • 121
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值