首页 > 代码库 > 黑马程序员----算术运算、关系运算、逻辑运算

黑马程序员----算术运算、关系运算、逻辑运算

 

一、算数运算

1.C语言中一共提供了34种运算符

2.基本运算(加、减、乘、除)

3.取余运算(也称模运算)

  • %两边都是整数,如果为小数会报错
  • 取余结果的正负性取决于%左边的整数
  • 取余运算可以将一个整数的值固定在多少以内

4.自动类型装换

 int a = 10.8; // double 自动转换成int,会有警告;

5.强制类型装换

int a = (int)10.8; // double 自动转换成int,不会再有警告;

6.自动类型提升

double c = 10.6 + 6; // 会将6自动提升为double进行加法运算;

7.复合运算

a += 5; // a = a + 5;a *= 6; // a = a * 6;a += 5 + 6 + 4; // a = a + (5 + 6 + 4);

8.代码练习

技术分享

 二、关系运算(比较运算)

1.条件判断

  • C语言中是没有BOOL类型的;
  • C语言中规定任何数据都是又真假性的:任何非0的值都为真,只有0才为假;

2.优先级

  • 关系运算符中 == 、!= 的优先级相等,<、<=、>、>= 的优先级相等,且前者的优先级低于后者;

如:int result = 2 > 3 == 1;

解析:先运算: 2 > 3 返回0,假

         再运算: 0 == 1; 返回为0,假

     即结果:result = 0;

  • 关系运算符的结合方向为从左往右;

如:int result = 4 > 3 > 2;

结果: result = 1 > 2 = 0;

  • 关系运算符的优先级小于算术运算符

如:int result = 3 + 4 > 8 - 2;

解析:int result = 7 > 6;

即结果:result = 1;

三、逻辑运算

1.逻辑运算的结果只有两种:真和假;

2.共有三种运算符:

  • 逻辑与:格式:条件1 && 条件2;
  • 逻辑或:格式:条件1 || 条件2;
  • 逻辑非:格式:!条件;

3.注意点:

  • 当条件1的结果已经能决定整体结果时,就不再运行条件2

如:

int a = 10;

int b = 10;

int c = (a < 5) && (++b >= 11);

结果:a = 10, b = 10, c = 0;

解析:当运算完 a < 5 后,即为0,就会决定c = 0;将不再运行b >= 11, 即,没有进行 ++b,导致 b = 10。

  • 条件也可以是一个常量;

如:int c = 5 && 6;

  • 逻辑非可以连写;

如:int a = !!5;  结果:a = 1;

4.代码练习:

技术分享

结果:

技术分享

 四、三目运算

1.格式:

  • 条件 ? 数值1 : 数值2;

如:int a = 10 > 5 ? 9 : 6;

结果:a = 9;

2.判断两个数的大小

int a = 10;int b = 9;int c = a > b ? a : b;

3.判断三个数的大小

int a = 10;int b = 9;int c = 998;int abMax = (a > b) ? a : b;int max = (abMax > c) ? abMax : c;// 结果:max = 998;

 4.代码练习

技术分享

 运行结果:

技术分享

 
 
 
 
 
 
 

黑马程序员----算术运算、关系运算、逻辑运算