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

一、算数运算

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.代码练习

运行结果:

时间: 2024-10-09 23:29:11

黑马程序员----算术运算、关系运算、逻辑运算的相关文章

黑马程序员—04-基本运算

一.   算术运算 C语言一共有34种运算符,包括了常见的加减乘除运算 1. 加法运算+ 2. 减法运算- 3. 乘法运算* 4. 除法运算/ l   整数除于整数,还是整数.1/2的值是0,这个并不是二分之一 5. 取余运算% l   什么是取余:两个整数相除之后的余数 l   %两侧只能是整数 l   正负性取决于%左侧的数值 6. 注意点 1>  自动类型转换 int b = 10.5 + 1.7; 自动将大类型转换为了小类型,会丢失精度 2>  自动类型提升 int b = 10.5 

黑马程序员-OC面向对象继承关系和组合关系笔记

继承关系是描述类和类之间的关系,两个类分别称为子类和父类,子类继承了父类,子类就拥有了父类的属性和方法: 继承的关系特点描述出来就是:** "是" **  (例如:学生类 是 人类) 组合关系描述的语句是:**** "拥有" ***  (例如:学生有成绩这个属性,而成绩属性本来就是一个成绩类的对象 ) 继承示例代码: #import <Foundation/Foundation.h> //Animal类的声明 @interface Animal : NS

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

【黑马程序员】————基本运算

一.  算术运算 C语言一共有34种运算符,包括了常见的加减乘除运算 1. 加法运算+ 除开能做加法运算,还能表示正号:+5.+90 2. 减法运算- 除开能做减法运算,还能表示符号:-10.-29 3. 乘法运算* 注意符号,不是x,而是* 4. 除法运算/ 注意符号,不是÷,也不是\,而是/ 整数除于整数,还是整数.1/2的值是0,这个并不是二分之一 5. 取余运算(模运算)% 什么是取余:两个整数相除之后的余数 %两侧只能是整数 正负性取决于%左侧的数值 6. 注意点 1>     自动类

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点

【黑马程序员】————运算符的优先级

运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 <<.>>.>>> 7 大小关系 >.>=.<.<= 8 相等关系 ==.!= 9 按位与 & 10 按位异或 ^ 11 按位或 | 12 逻辑与 && 13 逻辑或 || 14 条件运算 ?: 15 赋值运算 =.+=.-=.*=.

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员_Java集合框架

- - - - - android培训.java培训.期待与您交流! - - - - - - 集合框架:用于存储数据的容器. 特点: 对象封装数据,对象多了也需要存储.集合用于存储对象. 对象的个数确定可以使用数组.如果不确定可以用集合.因为集合是可变长度的. 集合和数组的区别: 数组是固定长度的:集合可变长度的. 数组可以存储基本数据类型,也可以存储引用数据类型:集合只能存储引用数据类型. 数组存储的元素必须是同一个数据类型:集合存储的对象可以是不同数据类型. 数据结构:就是容器中存储数据的方