黑马程序员技术交流社区

标题: 复杂的if [打印本页]

作者: sl7s78s8    时间: 2014-7-25 21:30
标题: 复杂的if
本帖最后由 sl7s78s8 于 2014-7-26 14:25 编辑

int a = 1,b =2,c = 4,d = 3;
if(a < b)
if(c<d) x = 1;
else
if(a < c)
if(b < d) x = 2;
else x = 3;
else x = 4;
else x = 5;
求x的值,我想知道这个怎么运算的,结构怎么看?



作者: fantacyleo    时间: 2014-7-25 21:34
本帖最后由 fantacyleo 于 2014-7-25 21:37 编辑

没有大括号的情况下,else和离它最近的未匹配else的if配对。其实你在任何一个ide里把代码粘贴一下就会得到自动缩进,看起来就清楚多了:
  1. int main(void)
  2. {
  3.         if(a < b)
  4.             if(c<d) x = 1;
  5.             else
  6.                 if(a < c)
  7.                     if(b < d) x = 2;
  8.                     else x = 3;
  9.                 else x = 4;
  10.         else x = 5;
  11. }
复制代码



作者: 阳光地带    时间: 2014-7-25 22:00
if-else遵守就近原则,先把格式改正确,结构自己看。
作者: 这个夏天的芬芳    时间: 2014-7-25 22:35
{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}
作者: istream    时间: 2014-7-25 23:40
这个格式没法看呀,需要修改一下格式,那样就可以看清格式了。
作者: sl7s78s8    时间: 2014-7-26 14:25
fantacyleo 发表于 2014-7-25 21:34
没有大括号的情况下,else和离它最近的未匹配else的if配对。其实你在任何一个ide里把代码粘贴一下就会得到 ...

明白了。
作者: a_dream    时间: 2014-7-26 21:31
可以用switch语句,效率高




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