C语言分支与循环语句

C语言是结构化的程序设计语言。这里结构指的是顺序结构,选择结构,循环结构。我们可以使用if,switch语句实现选择结构;for,while,do...while语句实现循环结构。

一、if语句

if语句有三种形式:

1、if(表达式)

语句;

2、if(表达式)

语句1;

else

语句2;

3、if(表达式1)

语句1;

else if(表达式2)

语句2;

else

语句3;

下面是代码示例:

1.

注:在写else if中的条件时,要用&&操作符(逻辑与),假设使用(18 < age <30)的形式,此时程序先执行18<age,左边为真,18<age的结果为真,运算结果就为1,然后再执行1<30这个语句。

默认在if和else语句中只控制一条语句,如果要控制多个语句,应使用大括号。例: 添上大括号之后的代码可以控制下面两条printf语句:

嵌套if语句:输入一个整数,如果是整数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数。悬空else问题:如果有多个if和else,else总是和最接近的if匹配。

如上代码,上面的代码排版让我们误认为它是与第一个if匹配的,当if语句不成立的时候,自然能想到的就是执行else子句。事实上else是和第二个if进行匹配,后面的if...else语句是嵌套在第一个if语句中的。第一个if语句条件不成立。自然无法执行if...else语句,故什么都不打印。如果换成如下代码则更容易理解。

如果我们确实想要else与第一个if进行匹配,可以这样修改代码:

可以看到,只要带上适当的大括号,代码的逻辑就会变得清晰。

二、switch语句

除了if语句之外,switch语句也可以实现分支结构。

switch语句是一种特殊的if...else结构,用于判断条件有多个结果的情况。相较if...else结构,switch语句更简单,可读性更好。

形式如下:

switch(expression){

        case value1:statement

        case value2:statement

        default:statement

}

注:expression必须是整型表达式;case后的值必须是整型常量表达式。

例:输入任意一个整数值,计算除3之后的余数。

我们要注意的点有:(1)case和后面的数字之间必须要有空格;(2)每一个case语句中的代码执行完成后,需要加上break,才能跳出这个switch语句。

如果没有break语句,代码执行结果如下:

3除7的余数原本是1,但是程序下面又多了一行“余数是2”的打印。原因是break语句是用于跳出switch语句。如果没有break语句,代码会继续向下执行,有可能执行其他case语句中的代码。因此break语句在switch语句中非常重要,有它才能实现真正意义上的分支。

default子句:当switch语句后的表达式中的值无法匹配代码中的case语句时,要么不予以处理,要么加入default子句。基本形式如下:

switch(expression){

        case value1:statement

        case value2:statement

        default:statement

}

当switch后面的expression的结果不是value1,也不是value2时,就会执行default子句。

例:打印星期,如果day的输入不是1-7,则提示错误。

default子句没有顺序要求,但通常把它放到最后处理。

三、while语句

while语句是实现循环结构的语句。

基本形式:while(表达式)

                              语句;//想要包含更多语句,可以加上大括号

若表达式的值为0.则循环直接结束;若表达式的值不为零,则执行语句,执行完之后再判断,是否进行下一次循环。

例:在屏幕上打印1-10的值。

四、for循环

for是三种循环中使用最多的,其基本形式如下:

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

        语句;//如果执行更多语句,可以加上大括号

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

表达式2用于循环结束条件的判断;

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

首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分。表达式2的结果如果==0则循环结束;表达式2的结果如果!=0则执行循环语句,循环语句执行完之后,再去执行表达式3,调整循环变量,然后再回到表达式2的地方执行判断,表达式2的结果是否为零,决定循环是否继续执行。

例:在屏幕上打印1-10的值。

五、do...while循环

在循环语句中,do...while的使用最少,它的语法如下:

do

        语句;

while(表达式);

while和for这两种循环都是先判断,满足条件进入循环,不满足条件跳出循环;而do...while则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式。表达式为真就会进行下一次,表达式为假则不再循环。

例:在屏幕上打印1-10的值。

do...while语句中循环体至少执行1次,这是do...while比较特殊的地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值