接上篇博客 Java基础语法(二)——数据类型
Java基础语法(三)——运算符
本次内容介绍大纲
一、算术运算符
1.基本四则运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 两数相加 |
- | 减 | 两数相减 |
* | 乘 | 两数相乘 |
/ | 除 | 两数相除 |
% | 取余 | 得到的是两数相除后的余数 |
四则规则较为简单.
我们通过下面一组代码来熟悉 四则运算符的操作.
(1)练习
代码一:
public static void main(String[] args) {
System.out.println(5/2);
System.out.println(5+2);
System.out.println(5-2);
System.out.println(5*2);
}
我们根据运算的规则得出编译的结果为 2 ,7 ,3 ,10
编译结果:
代码二:
public static void main(String[] args) {
System.out.println(5/2);
System.out.println((float)5/2);
System.out.println(5/(float)2);
System.out.println((float)(5/2));
}
编译结果
第一次打印的是 5/2,两个int 类型相除,得到的还是 int 类型的,所以得到的结果为 2.
第二次打印的是(float)5/2,将int 类型的5强制类型转换为 5.0,所以得到了2.5的结果.
第三次打印同二.
第四次打印先5/2,得到结果2,再将整形2 转换为 浮点型 2.0.
代码三: 负数的取模
public static void main(String[] args) {
System.out.println(10%3);
System.out.println(10%-3);
System.out.println(-10%3);
System.out.println(-10%-3);
}
这是带有负数的取模运算,那么编译的结果是什么呢?
编译结果:
10 / 3 = 3…1.
10 / -3 = -3…1.
-10 / 3 = -3…-1.
-10 / -3 = 3…-1 .
所以余数就为 1、 1、 -1、 -1.
(2)注意事项
(1)注意: 0不能做除数
代码如下:
编译结果:
当0作为 除数时 ,编译过程会报错,显示为算术异常,0不能作为除数.
(2)%表示取余,不仅仅可以对 int 求模,也能对 double 求模
代码:
public static void main(String[] args) {
System.out.println(11.5%2.0);
}
编译结果:
而在c语言中不能对小数进行取余操作,在Java中可以对小数取余
2.复合运算符
符号 | 例子 |
---|---|
+= | a+=2---->a=a+2 |
-= | a-=2----> a= a-2 |
*= | a =2–> a=a2 |
/= | a/=2---->a=a/2 |
%= | a%=2---->a=a%2 |
代码如下:
public static void main(String[] args) {
int a = 10;
a += 2;// a = a+2
System.out.println(a);
short b=6;
b +=2;// b= b+2
System.out.println(b);
}
编译结果如下:
我们知道,a+=2,相当于 a = a+2, b+=2,相当于 b = b+2.
当我们用 b = b+2,来代替 b+=2.
改正后的代码:
所以我们得出了一个结论:
复合运算符: += -= *= /= 都会帮我们进行一次强制类型转换.
3.自增自减操作符
符号 | 作用 |
---|---|
++ | 前置++:先++后赋值、后置++:先赋值后++ |
- - | 前置–:先–后赋值、后置–:先赋值后– |
代码一:
public static void main(String[] args) {
int a=10;
a++;
System.out.println(a);
int b=10;
++b;
System.out.println(b);
}
编译结果:
得出结论:
代码二:
public static void main(String[] args) {
int a=10;
int b=++a;
System.out.println(b);
int c=10;
int d=c++;
System.out.println(d);
}
编译结果:
得出结论:
二、关系运算符
关系运算符主要有六个:
符号 | 作用 |
---|---|
== | 判断表达式相等,区别于"="赋值 |
!= | 判断两个表达式是否不相等 |
< | 判断第一个表达式是否小于第二个表达式 |
> | 判断第一个表达式是否大于第二个表达式 |
<= | 判断第一个表达式是否小于等于第二个表达式 |
>= | 判断第一个表达式是否大于等于第二个表达式 |
练习
代码如下:
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(a<b);
System.out.println(a>b);
System.out.println(a<=b);
System.out.println(a>=b);
}
编译结果:
根据上述代码编译的实现,我们的得知 关系运算符的使用规则:
三、逻辑操作符
符号 | 名称 |
---|---|
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
1.逻辑与&&
代码:
public static void main(String[] args) {
int a=10;
int b=20;
int c=30;
System.out.println(a<b && b<c);
}
编译结果:
根据上述代码编译的实现,我们的得知 && 的使用规则:
2.逻辑或 ||
代码如下:
public static void main(String[] args) {
int a=10;
int b=20;
int c=30;
System.out.println(a<b || b<c);
}
编译结果:
根据上述代码编译的实现,我们的得知 || 的使用规则:
3.逻辑非!
代码:
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(!(a>b));
}
编译结果:
根据上述代码编译的实现,我们的得知 !的使用规则:
4.短路求值
&& 和 || 遵守短路求值的规则由代码来举例:
我们知道 0不可以作为除数出现。否则编辑器会进行报错处理。
我们来看编译结果:
正常运行,没有报错,这是为什么呢?
得出的结论:
四、位运算符
符号 | 名称 | 使用 |
---|---|---|
& | 按位与 | 两个二进制位都为1,对应位为1 |
| | 按位或 | 两个二进制位都为0,对应位为0 |
~ | 按位非 | 二进制中0变为1,1变为0 |
^ | 按位异或 | 二进制相同为0,二进制相异为1 |
1.按位与&
具体使用
代码如下:
public static void main(String[] args) {
int a=13;
int b=5;
System.out.println(a&b);
}
编译结果如下:
2.按位或 |
具体使用:运算方式类似于按位与&
使用规则:如果两个二进制位都是0,则结果为0,否则结果为1.
注意:
当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算
3.按位异或 ^
使用规则: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.
4.按位取反 ~
使用规则:如果该位为 0 则转为 1, 如果该位为 1 则转为 0
五、移位操作符
符号 | 名称 | 使用 |
---|---|---|
<< | 左移操作符 | 最左侧位不要了,最右侧补0 |
>> | 右移操作符 | 最右侧位不要了,最左侧补符号位 |
>>> | 无符号右移操作符 | 最右侧位不要了,最左侧补0 |
1.左移操作符<<
使用:
public static void main(String[] args) {
int a = 10;
System.out.println( a << 1);
}
编译结果:
原来的二进制对应的是10
左移后得到的是 20
所以我们最后可以得到结论:
2.右移操作符 >>
使用
代码展示:
public static void main(String[] args) {
int a = 10;
System.out.println( a >> 1);
}
编译结果:
原来二进制数字对应的数字是10
向右移动1位 对应的数字是 5
所以我们得到结论:
3.无符号右移 >>>
与右移操作符类似,但不同的是右移操作符最右侧位舍去,左侧补上符号位(正数补0,负数补1)
但是>>> 无符号右移的使用规则是 ,最右侧位舍去,左侧只补0.
4.总结
五、条件运算符
条件运算符(三目操作符)表达形式
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.
代码中的使用:
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(a>b?a:b);
}
编译结果:
六、关键字
这里我们先只做简单了解即可,后期我们会详细学到。
好了,今天Java基础语法运算符的知识就分享到这里,希望大家能够多多练习,巩固知识。谢谢大家的关注与欣赏!!!
谢谢欣赏!!!
完!
转载:https://blog.csdn.net/rain67/article/details/115414939