C语言if语句

if语句又称为条件语句,可以实现多路分支。C语言中,if语句一般格式如下:

        if(条件1)
        {
            语句1
        }
        else if(条件2)
        {
            语句2
        }
        else if (条件3)
        {
            语句3
        }
        …
        else if (条件m)
        {
            语句m
        }
        else
        {
            语句m+1
        }

其中,<条件1>,<条件2>,<条件3>…<条件m>表示if语句的条件表达式,用来判断执行哪一条语句。在执行if语句时,先对条件表达式求解,然后根据结果执行指定语句。这里条件表达式可以是逻辑表达式、关系表达式等。

一个判断条件的结果只有两种可能:条件成立与不成立。在许多高级语言中,都用逻辑值 “真”表示条件成立;用逻辑值 “假”表示条件不成立。在C语言中,没有专门的逻辑值,而是借助于非0值代表 “真”,0值代表 “假”。只要条件表达式的值为非0,if条件就成立,执行其后面的语句。例如:

        int y=0;
        if(a)
        {
            y=4;     /*如果为真,y值为4*/
        }
        else
        {
            y=5;     /*否则,y值为5*/
        }

这段代码执行后,y的值为4,因为字符a的ASCII值为97,if的条件表达式是一个非0值。

语句1,语句2,语句3…语句m+1是if语句的执行语句,可以是一条语句,也可以是复合语句。注意,每条语句的后面都以分号结尾。

在实际应用中,我们很少用到这么多条件。当条件足够多时,我们往往会选择switch语句,酷客教程switch语句中进行详细讲解。

常用的if语句格式

通常在运用的过程中,if分支语句有几种常用的格式:

格式一:
if语句最简单的格式是没有else,只有if关键字。格式如下:

        if <条件> 语句

这种if语句的执行过程是,<条件>所给出的表达式为真时,执行语句;当<条件>所给出的表达式为假时,不执行语句,即直接跳过if语句,执行程序下面的语句。程序执行流程如图所示:

C语言教程

例如:输出两个数的最大值:

        if(a<b)
        a=b;
        printf("a=%d\n",a);

格式二:
程序中应用最多的if语句是两路分支,它的基本格式如下:

        if(条件1)

            语句1
        }
        else
        {
            语句2
        }

该种形式的功能与简单if语句相似,首先判断条件,当<条件1>所给出的表达式为真时,执行语句1,否则执行语句2。程序执行流程如图所示。

C语言教程

if语句的嵌套

在if语句中出现的执行语句既可以是一条语句也可以是复合语句,那么在复合语句中可以再次出现if语句吗?当然可以!这就是if语句的嵌套。格式如下:

        if(条件1)
        {
            if(条件2)
            {
                语句1
            }
            else
            {
                语句2
            }
        }
        else
        {
            if(条件3)
            {
                语句3
            }
            else
            {
                语句4
            }
        }

此种格式最重要的一点就是,注意if与else的配对关系。

else总是与它前面离它最近的未配对的if语句配对,与程序的缩进无关。缩进的作用只是使代码富有层次感,易于他人阅读,与目标代码的生成毫无关系。在设计程序时,为表示清楚程序设计的目的,我们可以适当使用{}来确定配对关系。

一段if与else配对错误的程序如下:

        int a=0,b=1;
        if (a==0)
        if (b==1)
        printf("Good!\n");
        else
        printf("Bad!\n");

很多人初看此代码时,以为else是和if (a==0) 配对的。实际上,如果a不为0,此段代码根本不会执行。只有在a为0,并且b不为1时,才可以执行else语句。由此可见,我们要养成良好的编程风格,确定好各个代码的缩进量。此段代码可以改为:

        int a=0,b=1;
        if (a==0)
        {
            if (b==1)
            {
                printf("Good!\n");
            }
            else
            {
                printf("Bad!\n");
            }
        }

但是,若我们是希望else和if (a==0) 配对,则需要写成:

        int a=0,b=1;
        if (a==0)
        {
            if (b==1)
            {
                printf("Good!\n");
            }
        }
        else
        {
            printf("Bad!\n");
        }

此处运用{}来确定配对关系。所以,以后大家在运用if…else…时,一定要注意它们之间的确切关系。

赞(0)

评论 抢沙发

评论前必须登录!