程序设计讲稿4
本讲涉及的单词:
一、if  若是            二、else 不然              3、switch 开关
4、case 案例、事例      五、default  缺省、默许    六、break  打断
一、关系运算符及其优先级
一、关系运算符:
程序中常常需要比较两个量的大小关系,以决定程序的下一步工作,比较两个量的大小关系的运算符称为关系运算符,C/C++中有以下关系运算符:
>      大于
<      小于
==    等于
>=    大于等于
<=    小于等于
!=    不等于
关系运算符都是双目运算符,其结合性为左结合型。关系运算符的优先级低于算术运算符,高于赋值运算符。六个关系运算符中,>、<、>=、<=的优先级相同,==和!=的优先级相同,但前者高于后者。
二、关系表达式
关系表达式的一样形式:表达式 关系运算符 表达式
例如:a+b>c+d、 x<=3/二、a<(b>c)、a!=(c==d)
关系表达式运算的结果只有两种:(正确错误成立不成立),用数字1和0表示。
例如:5>3 的运算结果是1(正确),而3<5的结果是0(错误)
int main()
{
三目条件运算符?:的含义
    char c='k';
    int i=1,j=2,k=3;
    float x=3e+5,y=;
   
    printf("%d,%d\n",'a'+5<c,-i-2*j>=k+1);
    printf("%d,%d\n",1<j<5,<=x+y);
    printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);
     
    return 0;
}
程序的输出结果是:
解释
  (1) char c=k,实质是c=107;因为字符k的ASCII码是107。
  (2)'a'+5  相当于 97+5,因为字符a的ASCII码是97。
(3) 1<j<5 因为关系运算符的左结合性,所以先计算1<j,1<j成立,值为1。再计算1<5,成立,值为1。故表达式值为1
(4)k==j==i+5,先计算k==j,不成立,其值为0,再计算0==i+5,也不成立,值为0,故表达式值为0
二、逻辑运算符及其优先级
一、逻辑运算符
&&    逻辑与(and)
||    逻辑或(or)
!      逻辑非(not)
   
&&和||均为双目运算符,具有左结合性,其优先级低于算术运算符和关系运算符,&&的优先级高于||。!是单目运算符,具有右结合性,其优先级高于所有的算术运算符关系运算符,也高于&&和||。
  a && b ,只有在a和b都为正确的时候,结果才“正确”,其他情形都为“错误”
  例如:若是x=4,那么 (x>4 && x<10) 的结果确实是“错误”;
        而(x>=2 && x<10) 的结果确实是“正确”;
  a || b ,只有在a和b都“错误”的时候,结果才“错误”,其他情形都为“正确”
例如:若是x=4,那么 (x>4 || x<10) 的结果确实是“正确”;
        而(x<=2 || x>10) 的结果确实是“错误”;
  !a,表示将a的值取反,若是a为正确,那么 !a 为错误,若是a为错误,那么!a为正确
  例如:!(4>5)的结果为正确,而!(4<5)的结果为错误。
二、逻辑表达式
用逻辑运算符、关系运算符组成的式子,成为逻辑表达式:
    举例:
      数学表达式 -2 <= x < 10 的C语言条件表达式:                         
      x是奇数的条件表达式:                             
      x是偶数的条件表达式:                               
      x能被11整除的条件表达式:                               
      x能被4整除但不能被100整除,或能被400整除的C语言表达式:
                                                                                                                                           
    条件表达式: m % 2==1 && m<=20 || m>10
    在m=5的时候,表达式的值为:       
    在m=8的时候,表达式的值为:       
    在m=13的时候,表达式的值为:       
    在m=16的时候,表达式的值为:       
    在m=23的时候,表达式的值为:       
    在m=30的时候,表达式的值为:       

三、分支语句
格式:if(条件) 语句1;
        else  语句2;
  功能:若是 条件成立 那么执行语句1,不然执行语句2;
  其中,上面的格式中 else 语句2; 能够省略,上面的格式写成了两行,其实能够写成一行的,如此做只是为了程序加倍美观。
例7、编程输入两个整数,输出其中的大数。
解答程序1
解答程序2
int main()
{
  int a,b,MAX;
scanf("%d%d",&a,&b);
  MAX=a;
  if(MAX<b) MAX=b;
 
  printf("MAX=%d\n",MAX);
  return 0;
}
int main()
{
  int a,b,MAX;
scanf("%d%d",&a,&b);
 
  if(a>b) MAX=a;
  else MAX=b;   
 
  printf("MAX=%d\n",MAX);
  return 0;
}
解答程序1中,先把a的值赋给变量MAX,再用if语句判别MAX和b的大小,若是MAX<b,那么把b赋给MAX,如此MAX的值确实是a,b中将大的一个。
解答程序2中,若是a>b,那么把a的值赋给MAX,不然把b赋给b。那个地址的不然相当于a<=b。
    试探:可否写成下面的形式,若是不能,该如何修改?
    if(a>b) MAX=a;
    if(a<b) MAX=b;
例八、编程判定键盘输入的字符的类别:若是是数字字符,那么输出“Digit”;若是是大写字母,那么输出“Capital”、若是是小写字母,那么输出“Small”;若是不是上面三类,那么输出“Other”
int main()
{
  char c;
  scanf("%c",&c);
  if(c>='0' && c<='9')
      printf("Digit\n");
  else if(c>='A' && c<='Z')
      printf("Capital\n");
  else if(c>='a' && c<='z')
      printf("Small\n");
  else
      printf("Other\n");
  return 0;
}
如果c是数字字符则输出digit
否则如果c是大写字母则输出Capital
否则如果c是小写字母则输出"Small"
否则输出" Other "
四、条件运算符
  C/C++中有一个与if ~ else ~ 类似的运算符? :,它是三目运算符,其格式为: 
    表达式1?表达式2:表达式3
  其含义是:若是表达式1成立,那么以表达式2作为条件表达式的结果,不然以表达式3作为条件表达式的结果。
例如:if(a>b) MAX=a;
      else MAX=b;
    能够改写为:MAX = a>b? a: b;
条件运算符的优先级高于赋值运算符,低于算术运算符、关系运算符和逻辑运算符。
请用关系运算符改写例7的程序。
五、开关语句
  C/C++语言还提供了另一种用于多分支选择的语句——switch语句,其一样形式如下:
形式:
    switch(表达式)
{
case 常量表达式1:语句1
        case 常量表达式2:语句2
      …
        case 常量表达式n:语句n
      default:语句n+1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。