我猜想你之所以这样改,也许是因为你对
if(){}
if(){}
和
if(){}
else if(){}
到底有什么区别感到疑惑。
恩,我来帮你分析一下if....else的好处。
1.if...else的结构使整个程序能更加被程序员所阅读和理解。
2.if...else和if...if结构比起来能大幅度减少系统开支。怎么解释呢?让我们来看下面两个例子:
void main()
{
int a=1;
if(a==1) printf("A");
if(a==1) printf("B");
}
很显然,这个程序会输出AB两个字母,因为程序判断a==1是否成立一共判断了两次。
然而:
void main()
{
int a=1;
if(a==1) printf("A");
else if(a==1) printf("B");
}
这样写却只输出了A,为什么?因为计算机在判断if....else结构的时候,只要判断到了一个if分支成立,则其他分支将会被舍弃!!这样,系统就不用再花多余的时间去判断其他的if分支是否成立了,从而达到减少系统开支的目的。
所以,你这样改动这个程序,现在看起来还不会有什么大的问题,但是如果以后你编写大规模的程序的时候,你采用这样的结构,系统开支将会很大。
还有,你这样写存在一个很大的潜在危险,不知道你注意到了没有。
如果if(x<0) y=-1;这条语句不仅仅只有y=-1;这一句,还有x=0;即:
main()
{
int x,y;
scanf("%d",&x);
if(x<0){y=-1;x=0;}
if(x==0)y=0;
if(x>0) y=1;
printf("x=%d,y=%d",x,y);}
如果你输入的是-1,则输出的结果肯定是x=0,y=0
为什么?自己分析看看~