算术运算符
算术运算符:对程序来说就是用来对变量或者常量进行操作的符号
算术运算符种类: 1)加法运算符( + ) 2)减法运算符(-) 3)乘法运算符(* )等同于数学中的X 4)除法运算符(/ )等同于数学中的÷ 5)取模运算符(也称取余运算符)(%)
也被称为二元运算符即至少需要有两个操作数(操作数即元)参与运算
算术运算符的优先级:先乘除取余,后加减,同级的按照从左至右的规则
提升优先级的方法加( )小括号,可以无限加小括号,有小括号的先算括号里的数据
算术运算符使用规则:参与运算的操作数其数据类型必须相同(类型转换除外)
无论什么类型的表达式都会得到一个最终解,所有运算符中赋值运算符优先级最低
算术表达式:就是使用算术运算符连接起来的式子
1 常量表达式 如 1+1,5-3等(声明的常量除外) 2 变量表达式 如 a+b,a+1等
3 数值类型数据的运算
加乘无需多说,只说减法,除法与取余运算
3.1 减法运算中,如果被减数小于减数结果为负值 如:3-8=-5;
示例:交换两个变量的值,
//声明两个变量
int a=5,b=10;
//有两种实现方式
//方式1 使用中间变量
int temp;
temp=a;//temp=5;
a=b;//a=10;
b=temp;//b=5;
//方式2 没有中间变量
int a=6,b=9; // 依葫芦画瓢
a=a+b;//a=15; = b=a+b;
b=a-b;//b=6; = a=b-a;
a=a-b;//a=9; = b=b-a;
//这种方式的关键点是第二步,必须保证其中一方变量值不变
//只为说明功能的实现不要拘泥于某种方式
//多思多想以便程序可以适用于不同环境下
3.2 除法运算
1) 除数不能为0
除数不能为0
2) 两个整数相除得到的结果是一个整数,但小数部分会被忽略,造成精度缺失,如不想小数被忽略,需要把除号两端的操作数强转为浮点数类型(float或double类型)
3.3 取余运算:,一般都是运算整形数值类型的数据
取余运算
1) 取余运算是右侧操作数也不能为0
与除数运算时报相同的异常
2) 取余操作的结果如果不是零的话,结果的正负号和左侧操作数正负号一致,与右侧操作数的正负号无关
取余结果的正负号
4 非数值类型数据的运算
4.1 char(字符型)数据进行算术运算
字符类型在计算机中是以ASCII码值的形式存储即将字符编码转变为一个数值进行存储,所以在使用字符型数据进行算术运算时底层是通过该字符对应的ASCII码值进行运算的
特殊节点的ASCII码字符与其对应的ASCII码值 | |
0 - 9 | 48 - 57 |
a - z | 97 - 122 |
A - Z | 65 - 90 |
space(空格) | 32 |
字符型算术运算
注意:字符型数据进行算术运算后类型会转换为int类型数据
4.2 字符串类型数据
字符串数据无法使用"算术运算"运算,但可以使用其中的+运算符进行字符串拼接
字符串可以看做是一堆字符型的集合,在运算时无法轻易地转换为数值型数据进行运算;因此不能使用算术运算符进行运算,但是算术运算符中有一个特殊的运算符+,使用此运算符可以使用两个字符串类型的数据进行拼接,此时+就不再是“加法运算符”了,而是字符串间的"拼接符”
4.3 布尔类型与object类型也无法进行算术运算
5 使用()提升运算优先级
示例1:小明语文95,数学90,英语74;小华语文98,数学96,英语84;1)求各自平均分与总分 2)求两人合在一起的平均分与总分
编程思路:1)需要声明多少个变量 2)每个变量使用什么类型(暂时忽略) 3)实现功能的算术表达式
使用小括号提升运算优先级
因为只能使用同类型数据进行运算,运算结果有小数,因此使用双精度类型