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结构中的控制条件。当然,前提是必须在使用之前就对其进行了初始化。