中国IT者C语言入门专题讲座 第六讲 分支结构

时间:2007-07-14 07:08:34   来源:chinaitzhe.com  作者:ChinaITzhe  编辑:gaopoadmin

  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<B/n");
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<B/n");
else printf("A=B/n");

  本例中用了if语句的嵌套结构。 采用嵌套结构实质上是为了进行多分支选择,例3.16实际上有三种选择即A>B、A<B或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<B/n");
}

关键字:中国IT者,C语言,入门,专题,讲座, 第六讲, 分支结构

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面