问个关于else语句的有关问题。
问个关于else语句的问题。。。。。。
在c语言中 else总是和之前与最近的且不带else的if语句配对
大家看看这段代码
main()
{
int a=3,b=-8,c=5;
if(a<b)
if(b<0) c+=10;
else c+=20;
printf("%d",c);
}
输出的结果是c=25
和c语言中的规定不符啊
------解决方案--------------------
在c语言中 else总是和之前与最近的且不带else的if语句配对
大家看看这段代码
main()
{
int a=3,b=-8,c=5;
if(a<b)
if(b<0) c+=10;
else c+=20;
printf("%d",c);
}
输出的结果是c=25
和c语言中的规定不符啊
------解决方案--------------------
- C/C++ code
main() { int a=3,b=-8,c=5; if(a<b) { if(b<0) { c+=10; } else { c+=20; } } printf("%d",c); }
------解决方案--------------------
if(a<b)就不符合
直接调到
c+=20了
------解决方案--------------------
[code=C/C++]
main()
{
int a=3,b=-8,c=5;
if(a <b)
{
if(b <0) c+=10;
}
else
{
c+=20;
}
printf( "%d ",c);
}
好看多了吧 初学者把代码写规范一点
[/code]
------解决方案--------------------
中间的if被忽略掉了
------解决方案--------------------
- C/C++ code
int a=3,b=-8,c=5; if(a<b) { if(b<0) { c+=10; } } else { c+=20; } printf("%d",c);//这样输出结果是25 不知道是不是你要的
------解决方案--------------------
你那是什么编译器?答案很明显是5
------解决方案--------------------
a=3,b=-8,所以a<b就不成立啊,直接执行的c=c+20啊,所以结果就是25啊。