C 程序设计基础之三.docVIP

  • 1
  • 0
  • 约3.65千字
  • 约 6页
  • 2017-10-18 发布于江西
  • 举报
C 程序设计基础之三   关系运算符和表达式   在程序中经常需要比较两个量的大小关系, 以决定程序下一步的工作。比较两个量的运算符称为关系运算符。 在C语言中有以下关系运算符:    小于   = 小于或等于    大于   = 大于或等于   == 等于   != 不等于   关系运算符都是双目运算符,其结合性均为左结合。 关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,,=,,=的优先级相同,高于==和!=,==和!=的优先级相同。   关系表达式   关系表达式的一般形式为: 表达式 关系运算符 表达式 例如:a+bc-d,x3/2,a+1(bc),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。   如: 50的值为“真”,即为1。(a=3)(b=5)由于35不成立,故其值为假,即为0。 void main(){  char c=k;  int i=1,j=2,k=3;  float x=3e+5,y=0.85;  printf(%d,%d\n,a+5=k+1);  printf(%d,%d\n,1J5,X-5.25=X+Y);  printf(%d,%d\n,i+j+k==-2*j,k==j==i+5); } char c=k; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf(%d,%d\n,a+5=k+1); printf(%d,%d\n,1J5,X-5.25=X+Y); printf(%d,%d\n,i+j+k==-2*j,k==j==i+5);   在本例中求出了各种关系运算符的值。 字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。   逻辑运算符和表达式   逻辑运算符C语言中提供了三种逻辑运算符 与运算 || 或运算 ! 非运算 与运算符和或运算符||均为双目运算符。具有左结合性。 非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:   按照运算符的优先顺序可以得出:   ab cd等价于(ab) (cd)   !b==c||dA)   a+bc x+yc) ((x+y)B) P   switch语句   C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为: switch(表达式){  case常量表达式1: 语句1;  case常量表达式2: 语句2;  …  case常量表达式n: 语句n;  default : 语句n+1; }?   其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。 void main(){  int a;  printf(input integer number: );  scanf(%d,a);  switch (a){   case 1:printf(Monday\n);   case 2:printf(Tuesday\n);   case 3:printf(Wednesday\n);   case 4:printf(Thursday\n);   case 5:printf(Friday\n);   case 6:printf(Saturday\n);   case 7:printf(Sunday\n);   default:printf(error\n);  }  }   本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况, C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

文档评论(0)

1亿VIP精品文档

相关文档