目标:
- 运算符
- 语句
运算符:就是对常量和变量进行操作的符号
- 算数运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三目运算符
算数运算符:+,-,*,/,%,++,--
算数运算符的应用:
class OperatorDemo {
public static void main(String[] args) {
System.out.println("-----------------------------");
// 定义变量
int x = 3; // 把3赋值给int类型的变量
int y = 4;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y); // 整数相除只能得到整数
// 只需把操作的数据中任意的一个数据变为浮点数
System.out.println(x*1.0/y);
// %的应用,获取的是余数。
System.out.println(x%y);
System.out.println("-----------------------------");
// ++,--的应用:对变量进行自增或者自减
System.out.println("x:"+x+",y:"+y);
// 单独使用
x++;
y--;
System.out.println("x:"+x+",y:"+y);
System.out.println("-----------------------------");
++x;
--y;
System.out.println("x:"+x+",y:"+y);
System.out.println("-----------------------------");
// 参与运算使用
int a = 3;
int b = 4;
// int c = a++;
// int d = b--;
int c = ++a;
int d = --b;
System.out.println(a); // 4 4
System.out.println(b); // 3 3
System.out.println(c); // 3 4
System.out.println(d); // 4 3
}
}
注意事项:
- 整数相除只能得到整数,如果想得到小数,必须把整数变化为浮点数类型
- “/” 获取的是除法操作的商,“%” 获取的是除法操作的余数
- ++,--运算的使用:
- 单独使用:
- 放在操作数的前面和后面效果一样
- 参与运算使用:
- 放在操作数的前面,先自增或者自减,然后再参与运算
- 放在操作数的后面,先参与运算,在自增或者自减
- 单独使用:
赋值运算符: 基本的赋值运算符(=),扩展的赋值运算符(+=,-=,*=,/=,%=)
赋值运算符应用:
/*
赋值运算符:
基本的赋值运算符:=
把右边的数据赋值给左边的变量
扩展的赋值运算符:+=,-=,*=,/=,%=
+= 把左边和右边的做加法,然后复制给左边的变量
*/
class OperatorDemo1 {
public static void main(String[] args) {
// 定义一个变量
int x = 10;
// 其他用法
int a,b;
a = b = 10;
System.out.println(a);
System.out.println(b);
// 定义一个b
int y = 10;
y += 20;
System.out.println(y);
}
}
注意:扩展的赋值运算符其实隐含了一个强制类型转换。(short s=1;)s+= 1 不是等于s = s + 1,而是等价于s = (s的数据类型)(s + 1);
比较运算符: ==,!=,>,>=,<,<=
比较运算符的应用:
/*
比较运算符:
==,!=,>,>=,<,<=
特点:
无论你的操作是简单还是复杂,结果是boolean类型
注意事项:
“==” 不能写成 “=”
*/
class OperatorDemo2 {
public static void main(String[] args){
int x = 3;
int y = 4;
int z = 3;
System.out.println(x == y);
System.out.println(x == z);
System.out.println((x+y) == (x+z));
System.out.println(x != y);
System.out.println(x > y);
System.out.println(x >= y);
System.out.println(x < y);
System.out.println(x <= y);
}
}
逻辑运算符:&,|,^,!,&&,||
&,|,^,!的应用:
/*
逻辑运算符:
&,|,^,!
&&,||
特点:
逻辑运算符一般用于布尔类型的表达式或者值。
结论:
&逻辑与:有false则false
|逻辑或:有true则true
^逻辑异或:相同为false,不同为true(自己实验)
!逻辑非:非false则true,非true则false(自己实验)
*/
class OperatorDemo {
public static void main(String[] args){
int a = 3;
int b = 4;
int c = 5;
// &
System.out.println((a>b) & (a>c)); // false & false = false
System.out.println((a>b) & (a<c)); // false & true = false
System.out.println((a<b) & (a>c)); // true & false = false
System.out.println((a<b) & (a<c)); // true & true = true
// |
System.out.println((a>b) | (a>c)); // false | false = false
System.out.println((a>b) | (a<c)); // false | true = true
System.out.println((a<b) | (a>c)); // true | false = true
System.out.println((a<b) | (a<c)); // true | true = true
}
}
&&,|| 的应用:
/*
&& 与 & 的区别:
最终结果是一样的
&&具有短路效果,左边是false右边不执行
开发中常用的逻辑运算符为&&和||
*/
class OperatorDemo1 {
public static void main(String[] args){
int a = 3;
int b = 4;
int c = 5;
// &&
System.out.println((a>b) && (a>c)); // false & false = false
System.out.println((a>b) && (a<c)); // false & true = false
System.out.println((a<b) && (a>c)); // true & false = false
System.out.println((a<b) && (a<c)); // true & true = true
int x = 3;
int y = 4;
// boolean b1 =(x++ == 3 & y++ == 4);
// boolean b1 =(x++ == 3 && y++ == 4);
// boolean b1 =(++x == 3 & y++ == 4);
boolean b1 =(++x == 3 && y++ == 4);
System.out.println("x:"+x);
System.out.println("y:"+y);
System.out.println(b1);
}
}
位运算符:
&,|,^,~的应用:
/*
位运算符:
&,|,^,~
<<,>>,>>>
注意:位运算时,要将数字转换为二进制
分析:因为是位运算,所以我们必须先把数据换算成二进制
3的二进制:00000000 00000000 00000000 00000011
4的二进制:00000000 00000000 00000000 00000100
&位与运算:有0则0.
00000000 00000000 00000000 00000011
&00000000 00000000 00000000 00000100
------------------------------------
00000000 00000000 00000000 00000000
结果为:0
~按位取反运算符:0变1,1变0
00000000 00000000 00000000 00000011
~11111111 11111111 11111111 11111100(补码)
11111111 11111111 11111111 11111011(反码)
10000000 00000000 00000000 00000100(原码)
结果为:-4
*/
class OperatorDemo2 {
public static void main(String[] args){
// &,|,^,~
int a = 3;
int b = 4;
System.out.println(3 & 4);
System.out.println(3 | 4);
System.out.println(3 ^ 4);
System.out.println(~3);
}
}
三目运算符:
格式:
- (比较表达式)?表达式1:表达式2;
- 如果条件为真,则结果是表达式1;
- 如果条件为假,则结果是表达式2;
/*
三目运算符:
格式:比较表达式?表达式1:表达式2;
*/
class OperatorDemo4 {
public static void main(String[] args){
int x = 100;
int y = 200;
int z = (x > y)?x:y;
System.out.println(z);
}
}