在有if/else这样的语句时,希望不要图省事而不去写一对大括号"{}".除非你对不使用大括号而带来的结果非常有信心.
我得举一个例子让大家明白我说的不是一堆废话.
#include "stdio.h"
#include "conio.h"
int main(void)
{
int i,j;
clrscr();
scanf("%d,%d",&i,&j);
if(i>0)
if(i>10)
printf("i>10\n");
else
printf("i>0 && i<=10\n");
else
if(i<-10)
printf("i<-10\n");
else
printf("i>=-10 && i<=0\n");
if(j>0)
if(j>10)
printf("j>10\n");
else
if(j<-10)
printf("j<-10\n");
else
printf("j>=-10 && j<=0\n");
getch();
return 0;
}
大家可以运行一下,看一看结果是不是和你想象中的一样.
结果可能会让很多人失望.
例如:当i=20,j=-20的时侯,结果:i>10
那有人就会问,怎么没有:j<-10,大家可以回到程序中再去想一想,可能会知道其中的原因.
问题就是出现在:
if(j>0)
if(j>10)
printf("j>10\n");
else
if(j<-10)
printf("j<-10\n");
else
printf("j>=-10 && j<=0\n");
这段代码相当于:
if(j>0)
{
if(j>10)
{
printf("j>10\n");
}
else
{
if(j<-10)
{
printf("j<-10\n");
}
else
{
printf("j>=-10 && j<=0\n");
}
}
}
这下大家明白了吧.