黑马程序员技术交流社区

标题: if-else [打印本页]

作者: 每天进步一点点    时间: 2014-6-12 21:57
标题: if-else
本帖最后由 每天进步一点点 于 2014-6-13 10:27 编辑

#include <stdio.h>
int main()
{
         int a=2,b=-1,c=2;
         if(a<b)
                if(b<0)
                    c=0;
                else  c++;
         printf("%d\n",c);
}   

怎么做啊这个题????
作者: chain    时间: 2014-6-12 23:38
首先判断a <b这个条件是否成立,明显不成立,所以执行else ,打印结果是2
作者: 诸葛佰通    时间: 2014-6-12 23:39
首先,你要知道else是如何跟If匹配的:else总是跟离他最近的那个If相匹配,也就是这道题加上括号为:
int a=2,b=-1,c=2;
         if(a<b)
       {
                if(b<0)
                    c=0;
                else  c++;
        }
         printf("%d\n",c);
if(b<0)与else c++ 为一对。
然后初始值a=2,b=-1,所以程序没有运行到if判断里面的表达式,所以输出的c值为初始值=2
作者: 陈超众    时间: 2014-6-13 00:44
结果是2  ,打断点
作者: 诺忔。初禾、    时间: 2014-6-13 08:25
结果为2,自己可以运行一下就知道了
作者: 每天进步一点点    时间: 2014-6-13 10:26
chain 发表于 2014-6-12 23:38
首先判断a

老师讲课说:不执行else语句的,直接跳过去
作者: 每天进步一点点    时间: 2014-6-13 10:27
诸葛佰通 发表于 2014-6-12 23:39
首先,你要知道else是如何跟If匹配的:else总是跟离他最近的那个If相匹配,也就是这道题加上括号为:
int a ...

哦,明白了,回答不错,赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2