C语言从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

5.1.1 if结构

if结构是在编程时,常用的一种条件编译结构。该条件编译结构能够根据用户所给定条件的真假性,决定相应的代码段是否可以执行。在本小节中,将介绍if结构的相关知识以及使用方法。

1.if结构原型

用户在使用if结构之前,应当首先熟悉一下该结构的使用原型。通常情况下,在C语言中,if结构的使用原型如下:

if (iftrue)//对条件进行判断
    {
      statement//将被执行的代码段
      ……//省略部分代码
    }

在该结构的使用原型中,其参数iftrue表示了所指定的条件。如果该条件为true,则将执行if结构后面的代码段,并实现相应的功能。如果该条件为false,则将跳过if结构中的代码段而去执行该结构后面的其他代码段,即执行上面代码中的代码段statement。

在该条件结构的使用原型中,其控制条件iftrue不仅是一个简单的BOOL类型值,还是一个表达式。如果该表达式的结果为true,则指定的代码段也会被执行。

注意 在C语言中,BOOL表示布尔类型。在程序中,使用布尔类型定义变量时,则该类型的变量取值只能够有两个,分别为true和false,即“真”和“假”。

当然,用户也可以根据上面的文字描述,画出与if条件编译结构功能执行相关的流程图,如图5.1所示。

如图5.1所示,当程序执行到if条件编译结构中时,会对用户所指定的控制条件进行判断。若该条件为true,则程序将执行if结构中的代码段statement。否则,示例程序将跳过if结构中的代码段继续执行。

图5.1 if条件编译结构功能执行流程图

注意 在if条件编译结构中,程序主要是根据用户所指定的条件,对相关的代码段进行选择性地执行。利用这一特点,用户可以实现很多相关的功能。

2.使用if条件结构

当用户对if结构的使用原型熟悉以后,就可以在程序中熟练地使用该条件结构编写程序实现相应的功能。在本小节中,将介绍if条件结构的主要的功能和相应的使用方法。

例如,在下面的示例中,用户将通过if结构对变量a的值是否等于10进行判断。如果该变量值为10,则程序将输出提示语。具体的代码如下:

#include <stdio.h>//包含头文件
main()//主函数开始
{
    int a=10;//定义并初始化整型变量a
    ……//省略部分代码
    if(a==10)//对变量a的值进行条件编译
{
    printf("用户定义的变量a等于10 ");//输出提示语……//省略部分代码
   }
return 0;//程序正常结束
}

在示例代码中,首先自定义了一个整型变量a,并将其初始化为10,并使用if结构对表达式“a==10”进行判断。如果该表达式成立,则将返回true;否则,将返回false。

注意 在if结构中,若判断条件为表达式时,只要该条件表达式成立,都将返回true。否则,将返回false。这样,if结构就可以根据表达式所返回的值进行判断,是否执行该结构中的代码段。

而在示例程序中,由于已经指定了变量a的值为10。所以,在if结构中,条件表达式“a==10”是成立的,并将返回true。

在if结构中,由于其条件参数值将返回true。所以,程序将执行if结构中的代码段。即在屏幕中输出相应的提示语,如图5.2所示。

注意 在示例程序中,主要是为了使用户熟悉if结构的使用方法。所以,在if结构中根据条件的真假,直接输出了一串提示语。而在实际使用时,可以将相应的功能代码放置到if结构中,进行执行即可。

如果将程序中的变量a的值初始化为其他数值后,条件表达式“a==10”将会返回false。因此,程序将不会再执行if结构中的代码段。即屏幕中什么信息都不会显示出来,如图5.3所示。

图5.2 程序运行结果

图5.3 条件为“false”时的运行结果

在C语言中,if结构除了可以使用表达式作为条件以外,还可以直接使用布尔变量作为控制条件。例如,在程序中定义一个布尔类型的变量b,并将其初始化为true。这样,就可以根据该变量的值进行判断,是否执行特定的代码段。具体代码如下:

#include <stdio.h>//包含头文件
main()//主函数开始
{
  bool b=true;//定义并初始化布尔变量b
  ……//省略部分代码
  if(b)//对变量b的值进行条件编译
   {
     printf("用户定义的变量b的值为true ");//输出提示语
     ……//省略部分代码
    }
    return 0;//程序正常结束
    }

图5.4 程序运行结果

在上面的代码中,读者应当能够发现if的参数被直接指定为布尔变量b。此时,由于变量b的值已经被初始化为true。所以,当程序运行之后,将会执行if结构中的代码段。即输出用户所指定的提示语,如图5.4所示。

如图5.4所示,程序运行后输出了用户所指定的提示语。那么,这就表示前面的判断是正确的。实际上,用户还可以将程序中的布尔变量b使用表达式表示,也就是将if结构中的参数修改为“b==true”,修改后的程序运行结果如图5.4所示。

注意 在进行实际编程时,布尔类型的变量本身就可以作为if结构中的控制条件。当然,前提是必须在使用之前就对其进行了初始化。