第1个回答 2011-11-20
你的语句等同于
int a=9,b=8,c=7,x=1;
if(a>7)
if(b>8)
{
if(c>9) x=2;
else x=3;
}
这样就清晰了吧
b=8,所以根本就没有进入下面的if语句;
所以x依然为1;
如果是只要不满足以上条件,就3赋给x
可以这样
int a=9,b=8,c=7,x=1;
if(a>7&&b>8&&c>9)
x=2;
else
x=3;本回答被提问者采纳
第2个回答 2011-11-20
分析一下你的程序:
当a>7且b>8时:若c>9,x=2;否则x=3.
而默认的a=9,b=8,不符合b>8的这个条件,故以后的if……else语句无法执行。
所以x还是为1.
第3个回答 2011-11-20
你的表的式等介于
if(a>7)
{
if(b>8)
{
if(c>9)
{
x=2;
}
else x=3;
}
}
而b=8,就是第二个if{}中的内容没有执行,于是x还是x。没有{},else默认与最近的一个If匹配。
第4个回答 2011-11-20
else 朝上匹配离他最近的一个if,因为才c=7,不大于9所以不执行if(c>9)。