中华考试网·阅读新闻
编程开发 > C/C++ > 文章内容

C语言入门教程:if语句的嵌套

2015-12-10编辑:ljnbset

  if语句的嵌套

  当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。其一般形式可表示如下:

  if(表达式)

  if语句;

  或者为

  if(表达式)

  if语句;

  else

  if语句;

  在嵌套内的 if语句可能又是 if-else型的,这将会出现多个 if和多个else重叠的情况,这时要特别注意 if和 else

  的配对问题。例如:

  if(表达式1)

  if(表达式2)

  语句1;

  else

  语句2;

  其中的else究竟是与哪一个 if配对呢?

  应该理解为: 还是应理解为:

  if(表达式1)if(表达式1)

  if(表达式2) if(表达式2)

  语句1; 语句1;

  else else

  语句2; 语句2;

  为了避免这种二义性,C语言规定,else 总是与它前面最近的 if配对,因此对上述例子应按前一种情况理解。

  void main(){

  int a,b;

  printf("please input A,B: ");

  scanf("%d%d",&a,&b);

  if(a!=b)

  if(a>b) printf("A>B\n");

  else printf("A

  else printf("A=B\n");

  }

  比较两个数的大小关系。

  printf("please input A,B: ");

  scanf("%d%d",&a,&b);

  if(a!=b)

  if(a>b) printf("A>B\n");

  else printf("A

  else printf("A=B\n");

  本例中用了 if语句的嵌套结构。 采用嵌套结构实质上是为了进行多分支选择,例 3.16实际上有三种选择即A>B、A

  或A=B。这种问题用 if-else-if语句也可以完成。而且程序更加清晰。因此, 在一般情况下较少使用 if语句的嵌套

  结构。 以使程序更便于阅读理解。

  void main(){

  int a,b;

  printf("please input A,B: ");

  scanf("%d%d",&a,&b);

  if(a==b) printf("A=B\n");

  else if(a>b) printf("A>B\n");

  else printf("A

  }

C语言入门教程:if语句
咨询热线:4000-525-585(免长途费)