C语言控制语句——分支语句、循环语句、转向语句

一、什么是语句?

通俗来讲,以分号(;)结尾的一段代码就是一条语句。

C语句可分为五类:

1.表达式语句

表达式后面加一个";"便构成了表达式语句。如:

a=5+b;

2.函数调用语句

3.复合语句

多条语句用{}括起来便是一条复合语句。如:

//实现两数交换
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}

4.空语句

仅由";"构成的语句叫做空语句。

5.控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式。可分为三类:

1> 分支语句:if语句、switch语句

2>循环语句:do-while语句、while语句、for语句

3>转向语句:break语句、continue语句、goto语句

二、分支语句

分支语句用来实现选择结构

1.if语句

单分支:

if(表达式)

        语句;

双分支:

if(表达式)

        语句1;

else

        语句2;

多分支:

if(表达式1)

        语句1;

else if(表达式2)

        语句2;

else

        语句3;

C语言中0表示假,非零表示真。当表达式的结果为真时,执行对应的语句。

tips:注意悬空else!

        else总是与距离它最近的可匹配的if相匹配。例:

int main()
{
    int a=0;
    int b=1;
    if(a==1)
        if(b==1)
            printf("b=1");
    else
        printf("a=0");
    
    return 0;
}

本例中,else与第二个if语句匹配,构成了一条语句。由于a==1的结果为假,这条if-else语句不会执行,因此什么都不会打印!

因此,大家在写程序的时候一定要注意这样的细节,才能提高程序的可读性哦。

2.switch语句

switch也是一种分支语句,常常用于多分支的情况。

switch(整型表达式)

{

        case 1: 语句1;

                     break;

        case 2: 语句2;

                     break;

        case 3: 语句3;

                     break;

                 ......

        default: 语句n;

                     break;

}

tips:注意break的使用,如果没有break语句,执行完本条case语句后会继续执行下一条case语句!

三、循环语句

循环语句实现循环结构。

1.while循环

while(表达式)

{

        循环体;

}

循环体由一系列语句构成。

当表达式为真时,执行循环体的内容;执行完毕后再次判断表达式,若为真,继续执行循环体……如此循环往复,知道表达式为假,退出循环。

因此,一般情况下,循环体内必须含有能使表达式变为假的语句,避免出现死循环。

tips:while循环遇到break,会立马退出整个循环;遇到continue,会跳过本次循环,进入下一次循环。

2.do---while循环

do

{

        循环体;

}    while(表达式);

do---while循环先执行循环体,然后再判断表达式,若为真,继续执行循环体,若为假,退出循环。

因此,do---while循环至少执行一次循环体,而while循环可能一次都不执行。

tips:与while类似,do---while循环遇到break退出整个循环,遇到continue跳过本次循环,进入下一次循环。

3.for循环

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

{

        循环体;

}

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

表达式2用于循环条件的判断,若为真,执行循环体,若为假,退出循环;

表达式3为调整部分,用于改变循环变量。

tips:for循环遇到break,立即退出整个循环;

                  遇到continue,跳过本次循环体后面的语句,直接执行表达式3,然后进行表达式2的判断,进入下一次循环。

四、转向语句

在转向语句中,break和continue常常与循环语句结合使用,使用效果前文已经通过tips叙述。

goto语句

goto语句又称跳转语句,利用跳转标记可以跳转到本函数的任意位置。(注意:goto语句只能在同一个函数内部跳转,不能跨函数跳转)

goto语句的使用场景:

for(...)  

{       

         for(...)  

        {        

                for(...)      

                {      

                         if(disaster)                

                                goto error;      

                }  

        }  

error:

        if(disaster)        

                // 处理错误情况 

可见,goto语句可以终止深度嵌套的结构,而用一次break是无法实现的。

但在实际情况中,建议少用goto语句,否则滥用goto语句会造成程序混乱,带来不必要的麻烦。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值