C语言if else嵌套例题_C语言中if—else语句的嵌套分析

  摘 要:选择语句在C语言程序设计中广泛使用,本文分析了C语言中选择语句之间的关系,尤其对if-else语句的嵌套关系进行了阐述说明,在分析复杂嵌套关系时,强调else与if的对应关系,从而可以更好地理解程序,得出准确的结果。
  关 键 词:选择;嵌套;分析
  Select statement in C language program is widely used in design, this paper analyzes the C language statements in the relationship between the choice, especially for if-else statement nested relationship between explains, on the analysis of the complex nested relations, with emphasis on the corresponding shut if else, so as to better understand the program, draws accurate results.
  在谈及if语句嵌套时,几乎所有的教科书均给出一句经典的说明,嵌套关系的if语句之间的配对关系的判断方法为最里边的if和它下面的最近的else是一对。这段话,对初学者来说不太容易理解。其实,在研究if-else语句时,最重要的是先解决if语句之间是并列关系还是嵌套关系。如果是并列关系,if语句之间没有包含关系,但if语句的执行顺序会影响变量的当前值。如果是嵌套关系,则要找到if和else之间的配对关系[1]。
  由于在else语句中可以不断地嵌套if-else语句,形成多层嵌套,因此可以将嵌套理解为从上到下逐一对if后的表达式进行检测。当表达式为非0时,执行相关语句,阶梯部分被越过,如果所有表达式为假,则执行最后的else语句。这里需要注意的是,else不能省,因为如果没有else,情况可能完全不同。
  看这样一个简单命题:
  if (ab>c)
  {printf(“%d\n”,d);
  else if (c-2>=d)
  printf(“%d\n”,d+1);}
  else
  printf(“%d\n”,d+2);
  }
  本例中出现了多个if 和else,而且它们之间存在包含与被包含关系,即嵌套关系。很明显第一个格式输出函数到第二个格式输出函数之间的语句是作为第一个if语句的真实存在的结果。而一旦首个if语句为假,那么只能执行最后面的输出语句。这里,虽说第二个else是与前面的else if离得最近,但由于其前面大括号的存在,也就使它与上面所提及的if没有了任何的关系,它也只能与最先出现的if配成一对,完成最外围选择的需要。这里还要特别注意的是第一个if语句的条件a>b>c判定的结果,往往错误的产生,均由该条件没有判定好而引起[4]。N—S流程如图2所示。
  综上所述,无论是并列关系,还是嵌套关系,对于纯粹的选择语句,稍加用心是可以区分好if与else的关系的,而实际的情况是if语句中往往掺杂着关系,或是逻辑表达式,再加上自增减表达式的存在,同时对于else的缺省,以及大括号的使用,都给程序的读取造成一定的困难。因此需要我们进行经常性地练习,这样才能做到熟能生巧。
  参考文献
  [1] 李泽中.C语言程序设计[M].北京:清华大学出版,2008.
  [2] 刘玉英.C语言学习指南与解题[M].北京:中国水利水电出版社,2002.
  [3] 朝乐门.名师讲堂——二级C语言[M].北京:人民邮电出版社,2007.
  [4] 郭俊凤.C程序设计案例教程[M].北京:清华大学出版社,2009.

推荐访问:嵌套 语句 语言 分析