运算符与表达式(上)
一、前言
- 学习目标 1:熟练掌握基本运算符、连接符、自增、自减
- 学习目标 2:运用赋值运算、关系运算解决例题
二、基本运算
- 运算符:对变量进行操作的符号,如+ - * /
- 表达式:由变量或常量与符号的组合 ,如a>b,a=b
1. 基本运算符
运算符 | 作用 | 说明 |
+ | 加 | 在Java中可以做连接运算符 |
- | 减 | - |
* | 乘 | - |
/ | 除 | Java两个整数相除,不保留小数部分 例:6/4=1 |
% | 取余 | 获取的是两个数据做除法的余数 例:6%4=2 |
例题 :
- 利用除和取余运算符,将123拆分成个位、十位、百位后,打印在控制台?
public static void main(String[] args) { int n=123,i,j,k;//初始化变量 i=123%10;//个位 j=(123/10)%10;//十位 k=123/100;//百位 System.out.println(i);//输出结果 System.out.println(j); System.out.println(k); }
输出结果:
![6c8a711b2e5240f19fa59b825ae6f21d.png](https://uploadfiles.nowcoder.com/files/20220818/543808774_1660828850730/6c8a711b2e5240f19fa59b825ae6f21d.png)
编辑
2.“+” 做连接符
- +符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串
例题 1:
public static void main(String[] args) { System.out.println("字符串"+66);//字符串与数字做链接 System.out.println(66+"字符串");//左右顺序无关 }
输出结果:
编辑
- 如果是数字,优先计算结果
例题 2:
public static void main(String[] args) { System.out.println("字符串"+6+6); System.out.println(6+6+"字符串"); }
输出结果:
编辑
- +慢走从左至右依次运算,第一个从左到右先连接字符串6 再 连接字符串66
- 第二个先计算6+6=12,然后12与字符串连接
3.自增、自减
符号 | 作用 | 说明 |
++ | 自增 | 变量自身的值加1 |
-- | 自减 | 变量自身的值减1 |
特点:
- ++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。
- 在变量前 ,先进行变量自增/自减,再使用变量
- 在变量后 ,先使用变量,再进行变量自增/自减
- 下面给出了几个案例,面试题可能会考选择题:
例题 1:
public static void main(String[] args) { int i,j;//初始变量 i=5; j=i++;//此时先把i=5赋值给j,然后进行i++,i变成6 System.out.println(i); System.out.println(j); }
输出结果:
编辑
例题 2:
public static void main(String[] args) { int i,j;//初始变量 i=5; j=++i;//此时先计算++i,i变成6,然后把6赋值给j System.out.println(i); System.out.println(j); }
输出结果:
编辑
例题 3:
public static void main(String[] args) { int i,j,k;//初始变量 i=10; j=5; k=i++ + ++i - --j - ++j + 1 + i--; //执行步骤,10 + 12 - 4 - 5 + 1 + 12 System.out.println(i); System.out.println(j); System.out.println(k); }
输出结果:
编辑
三、赋值运算
- 本质:赋值运算其实就是等于,例如:a=10,把10赋值给变量a
扩展赋值运算符:
符号 | 作用 | 说明 |
+= | 加后赋值 | a+=b 等价于 a=a+b |
-= | 减后赋值 | a-=b 等价于 a=a-b |
*= | 乘后赋值 | a*=b 等价于 a=a*b |
/= | 除后赋值 | a/=b 等价于 a=a/b |
%= | 取余后赋值 | a%=b 等价于 a=a%b |
例题 :
public static void main(String[] args) { int i,j; i=10; j=20; i+=j;//等价于i=i+j; i=10+20=30 i+=i;//累加给自己i=i+i; i=30+30=60; System.out.println(i); } //输出60
- 注意:扩展的赋值运算符隐含了强制类型转换,赋值给a需要转换成a的类型。
四、关系运算符
- 定义:对数据进行条件判断的符号,最终会返回一个比较的boolen(布尔)结果,正确为true、错误为false。
关系运算符汇总表:
符号 | 说明 |
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b, 判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b, 判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
例题:
public static void main(String[] args) { int i=10,j=20,k=10;//定义三个变量 //== System.out.println(i==j); System.out.println(i==k); System.out.println("----------"); //!= System.out.println(i!=j); System.out.println(i!=k); System.out.println("----------"); //>= <= System.out.println(i>=j); System.out.println(i<=k); System.out.println("----------"); //= 一个等于是赋值,这里面把j的值先赋值给i,然后输出i System.out.println(i=j); System.out.println("----------"); }
输出结果:
编辑
- 注意:在做相等判断是,千万不要把 == 误写成 =。一个=是赋值运算,两个=才是关系运算。