黑马程序员技术交流社区

标题: 今天老师讲了从最后一个else向上找if 现在不是很清楚啊,求大神详细说说 [打印本页]

作者: 37°天黑    时间: 2015-4-11 21:35
标题: 今天老师讲了从最后一个else向上找if 现在不是很清楚啊,求大神详细说说

  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int a, b= 250, c;
  5.     if ((c=b)<0) a=4;//c=250
  6.     else if (b=0) a=5;
  7.     else a=6;//a=6
  8.     printf(”\t%d\t%d\n”,a,c);
  9.     if (c=(b==0))
  10.         a=5;
  11.     printf(”\t%d\t%d\n”,a,c);
  12.     if (a=c=b) a=4;
  13.     printf(”\t%d\t%d\n”,a,c);//a=0,c=0
  14. }
复制代码

作者: wslinke    时间: 2015-4-11 22:59
#include <stdio.h>
int main()
{
    int a, b= 250, c;
    if ((c=b)<0) a=4; //先将b的值赋给c,c=250,再判断c是否小于0,c这时等于250,判断不成立跳到else中,a=4这行就被跳过了;
    else if (b=0) a=5; //将b的值赋为0,此时判断条件为b,即0,为假,跳过a=5
    else a=6;//以上条件均不成立,到这里 a=6
    printf(”\t%d\t%d\n”,a,c);// 此时a=6,b=0,c=250
    if (c=(b==0)) // 由于b==0,所以将真,即1赋给c,条件为1,成立,执行a=5;
        a=5;
    printf(”\t%d\t%d\n”,a,c); //a=5,b=0,c=1
    if (a=c=b) a=4; // 先执行c=b,c为0,再执行a=c,a为0,在判断a的值,为0,即条件为假,跳过a=4;
    printf(”\t%d\t%d\n”,a,c);//a=0,b=0,c=0
}
作者: 37°天黑    时间: 2015-4-12 22:36
wslinke 发表于 2015-4-11 22:59
#include
int main()
{

谢谢大神指点!
作者: 261406938    时间: 2015-4-12 22:48
大神解释真详细:victory:
作者: 举举手    时间: 2015-4-12 22:55
这种其实挺简单的也就是从最后一个else找上个括号对应的括号 最好能用TAB键把代码分开
作者: shane_west    时间: 2015-4-12 23:05
什么叫 else向上找if  ????




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