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

5.1.2 if…else结构

if…else条件编译结构是对if结构的一种扩展,并且功能和使用方法也都是相同的。但是,if…else条件编译结构的使用范围更广一些。在该结构中,用户可以同时编写出控制条件分别为true和false时所需要执行的代码段。并可以根据其指定的控制条件,对两段代码进行选择执行。那么,在这一小节中,将介绍if…else结构的原型和使用方法等。

1.if…else结构原型

if…else结构的使用原型与if结构是相似的。同样,用户在使用if…else结构前,也需要了解一下该结构的使用原型,具体如下:

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

在该条件编译结构的使用原型中,当参数iftrue的值为true时,将执行功能代码段statement1;否则,程序将执行功能代码段statement2。

注意 if…else结构所执行的代码是根据所设定的条件进行选择的。当然,也可以将该条件编译结构解释为“如果……那么……”。这样,方便读者对该结构的理解。

如果用户将if…else条件结构的运行原理用流程图表示,则可以更为直观地理解该结构的具体使用方法,如图5.5所示。

图5.5 if…else结构的运行原理

如图5.5所示,当用户指定的控制条件为false时,程序将跳过if结构中的代码段,而执行else结构中的代码段。这样,用户就可以通过修改控制条件,实现代码段执行顺序的控制。

注意 用户在使用if…else结构时,必须同时为该结构编写两段功能代码。否则,将不能够最大限度地发挥其作用。

2.使用if…else结构

通过前面小节的学习,用户已经了解了if…else结构的使用原型及其执行的顺序。那么,在这一小节中,将通过编写示例程序具体讲解该结构的功能实现方法。

例如,用户在程序中,定义了一个字符型变量ch,再将其初始化为a,并通过使用if…else结构对变量ch的值进行判断。若该变量的值为a,则输出提示语“使用if…else结构成功”;否则,将输出提示语“使用if…else结构不成功”。具体的代码如下:

#include <stdio.h>//包含头文件
main()//主函数开始
{
  char ch='a';//定义并初始化字符变量ch
  ……//省略部分代码
  if(ch=='a')//对变量ch的值进行条件编译
    {
    printf("使用if…else结构成功 ");//输出提示语
    }
   else
    {
     printf("使用if…else结构不成功 ");//输出提示语
    }
    return 0;//程序正常结束
    }

在代码中,用户通过使用if…else结构对已定义的字符变量ch进行判断,并根据字符变量ch的值不同,将输出不同的提示语,如图5.6所示。

如果需要跳过if结构中的代码段,执行else结构中的代码段,则可以将字符变量ch修改为其他字符,即“char ch=’b’;”。修改后的程序运行结果如图5.7所示。

图5.6 if…else结构使用结果

图5.7 if…else结构的其他使用结果

注意 当用户需要将单个字符赋给一个字符型变量时,必须使用一对单引号将字符包含起来。

if…else结构可以实现非常多的功能,并且使用起来也很方便。例如,在示例程序中,用户可以通过使用if…else结构对一个学生的姓名、成绩等信息进行判断,并输出相应的提示信息。具体代码如下:

#include <stdio.h>//包含头文件
main()//主函数开始
{
  char ch='L';//定义并初始化字符变量ch
int score=90;//定义整型变量表示成绩,并初始化
if(ch=='L')//对变量ch的值进行条件编译
  {
    printf("该学生的姓名为:%c ",ch);//输出学生姓名
      }
  else
  {
    printf("不能查询该学生的姓名 ");//输出提示语
    }
  if(score==90)//对学生成绩进行判断
  {
    printf("该学生的成绩为:%d ",score);//输出学生成绩
    }
  else
  {
    printf("不能查询该学生的成绩 ");//输出提示语
    }
  return 0;//程序正常结束
  }

图5.8 学生信息判断运行结果

在上面的代码中,在主函数中分别定义并初始化了字符变量ch和整型变量score,这两个变量主要用于表示学生姓名和学生成绩。程序所需要的变量定义成功后,用户将使用两个if…else结构对学生姓名和成绩分别进行条件判断,并且输出相应的提示信息,如图5.8所示。

注意 在示例程序中,代码段“if(ch=='L')”表示对字符变量ch是否等于字符L进行判断。若相同,则将返回true。

实际上,if…else结构和if结构的功能与使用方法是非常相似的。用户将if…else结构进行简化之后,可以实现与if结构相同的功能。