8.1.3.3 If-Else条件语句

条件语句又称为if语句,其根据条件是否满足来决定是否执行某条件语句或者从两个语句中选择一个语句执行。

u  if语句

if(<表达式>) { 内嵌语句; }

其中的组成部分说明如下:

ifM语言的关键字,告知编译器这是一个条件判断语句

表达式:表示对一个条件的判断,其结果为01(假与真),表达式通常为关系表达式或逻辑表达式,也可以直接表示为某一个数值。

内嵌语句:当表达式的值为真(非0)时执行的语句。可以是一条语句或一组语句。

if语句的执行过程如下图所示。

如果表达式的值为真(0),则执行语句的操作,否则,表达式的值为假(0)时,则跳过语句部分,接着执行if语句下面的语句。

例如:

  if语句示例

int a,b,c;

a = 1;

b = 2;

c = 0;

if(a > b)

{

    c = a – b;

}

b = c;

在该程序中,if语句判断 a > b表达式的运算结果是否为逻辑真,若是,则执行c = a – b语句,如果为逻辑假,则会跳过语句c = a – b,转而执行下面的b = c的语句。所以,该程序b的值是1而不是0

u  if … else语句

if … else 的语句格式为:

if (表达式) { 语句序列1; }

else  { 语句序列2; }

其中的组成部分说明如下:

Ø  ifelseM语言的关键字,有if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。

Ø  语句序列:当表达式的值为真(或为假)时执行的语句。可以是一条语句或一组语句。

if … else语句的执行过程如下图所示。

当表达式结果为真时,执行语句S1,放弃语句S2的执行,执行if语句的下一条语句;当表达式结果为假时,执行语句S2,放弃语句S1的执行,执行if语句的下一条语句。无论如何,对于一次条件判断,语句S1和语句S2只能有一个被执行。不能同时被执行。

例如:

程序清单中所列的代码就是if … else 语句的示例,用于求分段函数值:当x > 1时,y = x;x <= 1时,y = 0

if … else 语句示例

float  x,y;

if (x >1)

{

   y = x;

}

else

{

    y = 0;

}

从上述程序段可以看到,if … else语句提供了一个相对完备的控制流程,可以通过该语句考虑在两种相对立的条件下程序的执行情况。

u  if语句的嵌套

if语句的嵌套是指在if语句的内嵌语句仍是if 语句。

语句格式为:

if (表达式e1) 

{

   if (表达式e2)

     {

         if (表达式e3)

           {

              内嵌语句;

}

}

}

else

{

     内嵌语句;

}

例如:

程序清单是一个复杂的if语句的嵌套示例,该程序的功能为:根据一个学生的成绩,判断该学生属于哪一个成绩段。

if语句的嵌套示例

int  iscore;

iscore = 87;

byte  score;

if(iscore >= 90)   //处理90分以上的

{

  score = 1;

}

else

{

   if(iscore >= 80)  //处理80~90分之间的

    {

      score = 2;

}

else

{

   if(iscore >= 70)  //处理70~80分之间的

{

  score = 3;

}

else

{

   if(iscore >= 60)   //处理60~70分之间的

    {

      score = 4;

}

else      //处理60分以下的

{

  core = 0;

}

}

}

}

通过上面的程序,完成了5中不同情况程序控制,说明了if语句嵌套强大的功能。