08-1 案例

一、复杂if语句的写法

同学们思考是不是只有一种表示方法?

#include <stdio.h>
int main()
{  
  double x;
  int y;
  scanf("%lf",&x);
  //对于任意一个x,下面三个if都会进去,不优
  if(x<0){y=-1;}
  if(x==0){y=0;}
  if(x>0){y=1;}
  printf("%d\n",y);
  fflush(stdin);
  getchar();
}

#include <stdio.h>
int main()
{  
  double x;
  int y;
  scanf("%lf",&x);
  //最后一支不必列出条件,不优
  if(x<0){y=-1;}
  else if(x==0){y=0;}
  else if(x>0){y=1;}
  printf("%d\n",y);
  fflush(stdin);
  getchar();
}

#include <stdio.h>
int main()
{  
  double x;
  int y;
  scanf("%lf",&x);
  //最优
  if(x<0){y=-1;}
  else if(x==0){y=0;}
  else{y=1;}
  printf("%d\n",y);
  fflush(stdin);
  getchar();
}

#include <stdio.h>
int main()
{  
  double x;
  int y;
  scanf("%lf",&x);
  //嵌套
  if(x<=0)
  {
    if(x<0)y=-1;   //如果只有一条语句,可省略{ }号
    else y=0;   //如果只有一条语句,可省略{ }号
  }
  else
  {
    y=1;
  }
  printf("%d\n",y);
  fflush(stdin);
  getchar();
}

二、关系表达式

关系运算(比较运算):> >= == != < <=

关系运算的结果是一个逻辑常量(真/假  是/否  Yes/No  True/False  T/F)

通常,0表示逻辑假,非0表示逻辑真

判断这几个逻辑值:  if(-1)   if(0)  if(3)

理解下面两个程序的区别

#include <stdio.h>
int main()
{
  int a=0;
  if(a=2)     //操作过程:把2赋值给a,再判断if(a)即if(2)  ,结果是逻辑真
  {
    printf("ok");
  }
  fflush(stdin);
  getchar();
  return 0;
}

#include <stdio.h>
int main()
{
  int a=0;
  if(a==2)   //操作过程:判断a是否与2相等,即if(0==2),结果为逻辑假
  {
    printf("ok");
  }
  fflush(stdin);
  getchar();
  return 0;
}

最后修改: 2015年12月4日 星期五 10:23