目录
1.什么是运算符
进行运算的表示符号。比如+,-,*,/等
2.常用的运算符有哪些
2.1算术运算符
加法(+)减法(-)乘法 (*) 取商(/) 取余数(%)
示例
//整数小数相除的例子
public class Cal {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println(a/b)
//此时a/b==3。
double c = 10.0;
int d = 3;
System.out.println(c/d)
//此时c/d为3.3333333333333335
}
}
2.2自增自减运算符
++ , --
注意事项
1) 自增自减只能够用于变量,不能用于常量
2) 自增自减运算的优先级 比 算术运算符 高
示例
public class MyCal {
public static void main(String[] args) {
int i = 3;
int j = i++;
System.out.println(i)
System.out.println(j)
/*此时是先将i=3的值赋给j然后再进行自增
所以输出的j=3,i=4。*/
int a = 3;
int b = ++a;
System.out.println(a)
System.out.println(b)
/*此时是先将a先自己自增,然后再将自增后的值赋值个b
所以输出a=4,i=4。*/
}
}
要点:
把整个表达式看成是一个整体。
如果变量名在前面,那么整个表达式的值就是原来值不变。
如果变量名在后面,那么整个表达式的值就是原来的值加1。
要求:
如果自己写自增自减 和 算术运算一起的时候 中间 加上空格
int a = 1;
int b = 2;
int c = a+++++b; // 自增自减记得加上空格分隔符int c = a++ + ++b;
小结:
1.不要把单独的 自增自减 和 有表达式的自增自减搞混淆了
i++;
int j = i++;
2. 一定要弄清楚计算规则,表达式的值 和 具体计数器的值的变化是什么
3. i++与++i区别
2.3赋值运算符
= += -= *= /= %=
赋值符号的运算顺序
-
从右到左,把符号右边的值赋值到左边的变量中
-
上面 后五个分别看成是一个整体: 例如 += 看成是一个符号,不要看成两个;
**示例:** int i=3; i +=2;// 表示把2 累加到变量 i 中 i = i + 2; i -=1;//表示i = i - 1 i *=3;//表示 i = i * 3 i /=3;//表示 i = i / 3 i%=3; //表示 i = i % 3 **特例:** short s = 3; s += 2;//存在隐式转换 short s = 3; s = s+2;//结果值是int,int不能自动转换为short
2.4比较运算符
== , != , > , < , >= , <=
比较运算符规律:
-
比较运算的结果是一个布尔类型的值(true 或false);
System.out.println(3>5);//输出结果为boolean类型
2.5逻辑运算符
2.5.1逻辑运算符中注意事项
//如果要表示5大于3 并且3大于1
5>3>1 //java不允许
5>3&&3>1 //java中的书写方式
//示例:
/* 1.小明参加2个学科的考试 java php
java考了一百分并且php考了一百分,奖励欧洲十日游
伪代码描述:java==100并且php==100*/
//java中表示方式
int java = 100,php=100;
System.out.println(java==100&&php==100);
2.5.2逻辑运算符中的运算规则
-
& :两边都为true ,结果为true
-
| :只要有一边为true,结果为true
-
&&(双与) :两边都为true ,结果为true
-
||(双||) : 只要有一边为true,结果为true
-
^ : 两边不一样,结果为true ,否则为false,举个例子打印一下
-
! : 逻辑非
2.5.3逻辑运算符中& 与 && ,| 与 || 的区别
1.&& || 具有短路功能 & | 不具有短路功能
什么是短路
A&&B时如果A输出为false的时,则代码就会中断B不会执行,逻辑运算的值也为false
A || B时当A输出为ture时,代码中断B不会执行,逻辑运算的值为ture。
int g = 10;
System.out.println(false && g++ == 10);
System.out.println(g);//此时g的值为10 说明短路
int i = 1;
System.out.println(true || i++ == 1);
System.out.println(i);//此时i的值为1 说明短路
2.6三目运算符
/**
* 运算符 - 三目运算
* 语法: x ? y : z
* x 可以是一个变量 可以是一个表达式 但是注意 x的结果一定是 boolean类型
* y 和 z 可以是相同的数据类型 也可以是不一样的数据类型
* 可以是常量 可以是变量 可以是表达式
* 但是如果你需要使用一个 变量接收该三目表达式的值 那么 y和z 就一定要是相同的数据类型
* 什么时候决定 执行 y 什么时候决定执行 z呢?
* 当x 的结果为 true的时候执行 y 否者 执行 z
*
*/
2.7位运算符
就是将他们的十进制转化为二进制,在用二进制相加
/*
* 运算符 - 位运算
*
*/
System.out.println(5|7);
//5的二进制-->0000 0101
//7的二进制-->0000 0111
// 0000 0111
此时输出答案为7.