1.运算符
1.1 运算符的基本概念
int num = 10+5;
- =和+都是运算符
- 运算符左右变量的内容称之为操作数将运算符左右两边有一个操作数称之为单目或单元 两个:双目或双元运算符
- 10+5称之为表达式,最后有一个运算结果
- int num=10+5;一条语句,;结尾称之为一条语句
1.2 运算符的分类
- 算术运算符 + - * / % ++ –
- 关系运算符 > < >= <= != == instanceOf
- 逻辑运算符 & | ! ^ && ||
- 赋值运算符 =
- 拓展运算符 += -= *= %= >>= <<= ^= !=
- 位运算符 & | ^ >> << >>>
- 条件运算符:?
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | b=4; -b | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-4 | |
* | 乘 | 3*4 | |
/ | 除 | 5/5 | |
% | 取模(取余) | 7%5 | |
++ | 自增(前) :先运算后取值 | a=2;b=++a | a=3;b=3 |
++ | 自增(后) 先取值后运算 | a=2;b=a++ | a=3;b=2 |
– | 自减(前) :先运算后取值 | a=2;b=–a | a=1;b=1 |
– | 自减(后) :先取值后运算 | a=2;b=a– | a=1;b=2 |
+ | 字符串连接 | “He”+“llo” | “Hello” |
1.2.1赋值运算符
= 将赋值运算符右侧的结果给左侧的变量进行存储
int num = 10;
- 自右向左进行运算
1.2.2 算数运算符
+号
public class Operator01{
public static void main(String[] args){
int num = +5;
System.out.println(num);
num = 5+3;
System.out.println(num);
//连接符号
System.out.println("1+1="+1+1);
System.out.println("1+1="+(1+1));
}
}
注意事项
- 正号,在数值之前编写
- 加法运算,保证+左右两边是一个具体数值
- 连接符,+左右两边有一个操作数是字符串类型,此时+是连接符,它的运算规则会将左右的操作数都当成是字符串,然后进行拼接(拼接的结果还是字符串.
-号
public class Operator01{
public static void main(String[] args){
int num = -5;
System.out.println(num);
num = 5-4;
System.out.println(num);
}
}
- / %号
public class Operator02{
public static void main(String[] args){
int num = 3*3;
System.out.println(num);
num = num/3;
System.out.println(num);
num = num%2;//3%2
System.out.println(num);
}
}
++和–
- ++和–都是单目运算符
- ++和–的联系与区别
- 联系
- ++运算符是在原来的基础上自增
- –运算符是在原来的基础上自减
- 当++和–是单独一条语句,++和–是单目运算符 但是在前和 在后是没有区别,都是自增 1,都是自减1.
- 区别(不是单独一条语句时)
- num++ => num++ 最后有一个结果 num本身存在一个结果;num++ 表达式的值和num是有关系 num++ 表达式的值= num的值。
- ++num不是单独一条语句是,前加,先自增 再运算。
- num++不是单独一条语句时,后加,先运算 再自增
- –num不是单独一条语句是,前减,先自减 再运算。
- num–不是单独一条语句时,后加,先运算 再自减
- 联系
public class Operator03{
public static void main(String[] args){
int num = 10;
//使用++自增运算符 -- 自减运算符
--num;
System.out.println(num);
//让num重新赋值10
num = 10;
//将num做完自增或者是自减运算之后 赋值给一个新的变量result
int result = ++num;
//打印输出num和result的值
System.out.println("num:"+num+"result"+result);
int k = 5;
int j = 6;
result = k++ + ++k -k++ + j-- - ++j + j-- + ++k;
System.out.println("k:"+k+",j:"+j+",result:"+result);
}
}
1.2.3 扩展运算符
其实本质上就是算术运算符和位运算符+赋值运算符的结合体. += -= /= 等
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 相等 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | true |
instanceOf | 检测是否是类的对象 | “Hello” instanceof String | true |
public class Operator04{
public static void main(String[] args){
// 计算两个学生的分数之和
int zhangScore = 44;
int liScore = 33;
//求和
int sum = 0;
sum = sum+ zhangScore;//sum +=zhangScore;// sum = sum+ zhangScore;
sum = sum+ liScore;//um +=liScore;//sum /= zhangScore;
System.out.println(sum);
int num = 1000;
byte n = 0;
n += num;
System.out.println(n);
}
}
拓展运算符的优缺点分析
- 优点
- 提高了编译速度
- 提高了编写速度
- 自动强制类型转换
- 缺点
- 不利于阅读
1.2.4 关系运算符
public class Operator05{
public static void main(String[] args){
boolean flag = 4>10;
System.out.println(flag);
flag = 4!=5;
System.out.println(flag);
flag = 1*31+22>33;
System.out.println(flag);
// 二元运算符 '>' 的操作数类型错误
//System.out.println("hello">"hello");
//System.out.println(true>true);
int num = 1+true;
}
}
注意事项:
- 最后的结果时一个boolean类型的值true和false
- != ==既可以比较基本数据类型,也可以比较引用数据类型
- < > >= <=只能比较基本数据类型.
1.2.5 逻辑运算符
a | b | a&b | a | b | a || b | !a | a^b |
---|---|---|---|---|---|---|
true | true | true | true | true | false | false |
true | false | false | false | true | false | true |
false | true | false | false | true | true | true |
false | false | false | false | false | true | false |
- 逻辑运算符用于连接布尔型表达式,在 Java Java 中不可以写成 3<x<63<x<6 3<x<6 ,应该写 成x>3 & x<6。
- "&“和”&&"的区别
- 单&时,左边无论真假右都进行运算;
- 双&时,如果左边为真,右参与运算,如果左边为假,那么右边不参与运算
- “|” “|” 和“ ||” 的区别同理, || 表示:当左边为真,右不参与运算.
- 异或 ( ^ ) ( ^ )( ^ )与或 ( | ) ( | )( | )的不同之处是:当左右都为 true 时,结果为 false 。
转载:https://blog.csdn.net/weixin_42638763/article/details/101462960
查看评论