Java数据类型和运算符day02(下卷)
1运算符
1.1.概述
1:运算
对常量和变量进行操作的过程称为运算。
2:运算符
对常量和变量进行操作的符号称为运算符
3:操作数
参与运算的数据称为操作数
4:用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。
不同运算符连接的式子体现的是不同类型的表达式。
1.2.运算符分类
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三目运算符
1.3.算术运算符
1.3.1.算符运算符常见运算符演示
public static void main(String[] args) {
int x = 10;
int y = 4;
System.out.println(x+y); // 14
System.out.println(x-y); // 6
System.out.println(x*y); //40
System.out.println(x/y); //2
System.out.println(x*1.0/y); // 2.5
}
1.3.2.% 取余 (取模)
public static void main(String[] args) {
int x = 3;
int y = 4;
// System.out.println(x+y); // 14
// System.out.println(x-y); // 6
// System.out.println(x*y); //40
//System.out.println(x/y); //2
// System.out.println(x*1.0/y); // 2.5
System.out.println(x%y);
}
1.3.3.+符号的常见用法
加法
正数
字符串连接符
1.3.4.自增和自减运算符使用(初级)
1)概述
代码实战1:
public static void main(String[] args) {
int x = 2;
int y = 2;
System.out.println(“x:”+x);
System.out.println("y:"+y);
System.out.println("==============");
System.out.println("x:"+x+",y:"+y);
}
代码实战2:
public static void main(String[] args) {
int x = 2;
int y = 2;
System.out.println(“x:”+x);
System.out.println("y:"+y);
System.out.println("==============");
System.out.println("x:"+x+",y:"+y);
x++;
System.out.println("x:"+x);
y--;
System.out.println("y:"+y);
}
自增(++)和自减(–)运算符的作用:
让变量的值进行自增1或者自减1
2)使用
- 单独使用
public static void main(String[] args) {
int x = 2;
int y = 2;
System.out.println(“x:”+x);
System.out.println("y:"+y);
System.out.println("==============");
System.out.println("x:"+x+",y:"+y);
//x++;
++x;
System.out.println("x:"+x);
//y--;
--y;
System.out.println("y:"+y);
}
单独使用:符号放在前面或者后面效果都一样
1.3.5.自增和自减运算符使用(提高)
13.5.1.代码实战
实战1:
public static void main(String[] args) {
// 参与运算
int a = 3;
int b = 4;
int c = a++;
int d = b--;
System.out.println("a:"+a); // 4
System.out.println("b:"+b); //3
System.out.println("c:"+c); //3
System.out.println("d:"+d); //4
}
实战2:
public class Demo2 {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = ++a;
int d = --b;
System.out.println("a:" + a); // 4
System.out.println("b:" + b); // 3
System.out.println("c:" + c); // 4
System.out.println("d:" + d); // 3
}
}
【开发结论】:
如果单独使用,放在操作数的前面或者后面,效果都一样
参与运算
-
如果是放在操作数的前面,先进行自增或自减,然后再去参与运算
-
如果是放在操作数的后面,先参与运算,然后再去进行自增或者自减少
13.5.2.练习题
1:基本小题目
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c–;
请分别计算出a,b,c的值
public class Demo4 {
public static void main(String[] args) {
int a = 10;
int b = 10;
int c = 10;
a = b++; //a = 10 b = 11 c =10
c = --a; // a=9 b=11 c=9
b = ++a; //a=10 b=10 c=9
a = c–;// a=9 b=10 c=8
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("c:"+c);
}
2:比较复杂的题目
int a = 4;
int b = (a++)+(++a)+(a*10);
引出运算符的优先级
1.4.赋值运算符
符号:
= , +=, -=, *=, /=, %=
=为基本的赋值运算符,其他的为扩展的赋值运算符
public static void main(String[] args) {
int a = 10; // 将右边的10赋值给左边的int类型变量a
int b = 20;
System.out.println(a);
System.out.println(b);
System.out.println("==============================");
int x = 10;
int y;
int z;
z=y=x;
System.out.println("x:"+x);
System.out.println("y:"+y);
System.out.println("z:"+z);
}
扩展的赋值运算符
public static void main(String[] args) {
int x = 10;
x+=20; // 将变量x在原有的基础上 + 20 再赋值给x
// x = x+20;
System.out.println(x);
}
1.5. 关系运算符(比较运算符)
【开发结论】:
1)比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2)比较运算符“==”不能误写成“=” 。
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println(ab);
System.out.println((a+b)(a+c));
}
1.6.逻辑运算符
1.6.1.概述
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
• 单&时,左边无论真假,右边都进行运算;
• 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
1.6.2.逻辑运算符实战
实战1(&逻辑与)
public static void main(String[] args) {
int a = 2;
int b = 3;
int c = 4;
System.out.println((a>b)&(a>c));
System.out.println((a>b)&(a<c));
System.out.println((a<b)&(a>c));
System.out.println((a<b)&(a<c));
}
观察打印结果:
结论: & 逻辑与:有false则false
实战2(逻辑或 |)
public class Demo {
public static void main(String[] args) {
int a = 2;
int b = 3;
int c = 4;
System.out.println((a>b)|(a>c));
System.out.println((a>b)|(a<c));
System.out.println((a<b)|(a>c));
System.out.println((a<b)|(a<c));
}
观察打印结果:
结论: | 逻辑或:有true则true
实战3:(逻辑异或)
public static void main(String[] args) {
int a =2;
int b = 3;
int c = 4;
System.out.println((a>b)^(a>c));
System.out.println((a>b)^(a<c));
System.out.println((a<b)^(a>c));
System.out.println((a<b)^(a<c));
}
观察打印结果:
结论: ^ 逻辑异或:相同为false,不同为true
实战4(逻辑 非 !)
取反
实战5(双与 &&)
public class Demo4 {
public static void main(String[] args) {
int a = 2;
int b = 3;
int c = 4;
System.out.println((a>b)&(a>c));
System.out.println((a>b)&(a<c));
System.out.println((a<b)&(a>c));
System.out.println((a<b)&(a<c));
System.out.println("========================");
System.out.println((a>b)&&(a>c));
System.out.println((a>b)&&(a<c));
System.out.println((a<b)&&(a>c));
System.out.println((a<b)&&(a<c));
System.out.println("*****************************");
int x = 3;
int y = 4;
boolean b1 = (x++==3 & y++==4);
System.out.println("x:"+x);
System.out.println("y:"+y);
System.out.println("b1:"+b1);
boolean b2 = (x++==3 && y++ ==4);
System.out.println("x:"+x);
System.out.println("y:"+y);
System.out.println("b2:"+b2);
boolean b3 = (++x ==3 && y++ == 4);
System.out.println("x:"+x);
System.out.println("y:"+y);
System.out.println("b3:"+b3);
}
}
双与:左边只要是false,右边就不执行
实战6(双或 ||)
1.7.三目运算符(三元运算符)
三目运算符(三元运算符)
- 三目运算符格式:
- 条件表达式?表达1:表达式2
- 条件表达式:条件表达式无论多么复杂,结果一定是布尔类型 (true、false)
- 三目运算符的执行流程:
- 先判断条件表达式的结果 true 还是false
- 如果条件表达式的结果是 true ,那么 返回表达式1的值
- 如果条件表达式的结果是false,那么返回表达式2的值
代码:
public class Demo1 {
public static void main(String[] args) {
int x = 2;
int y = 3;
int z;
z = (x>y)?x:y;
System.out.println("z的值:"+z);
}