day09

## 运算符

![image-20221216154445718](C:\Users\biao\AppData\Roaming\Typora\typora-user-images\image-20221216154445718.png)

![image-20221217000214906](C:\Users\biao\AppData\Roaming\Typora\typora-user-images\image-20221217000214906.png)

 

package operator;

public class Demo01 {
public static void main(String[] args) {
// 二元运算符
//Ctrl + D : 复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25;

System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println((double)a/b);
}
}


package operator;

public class Demo02 {
public static void main(String[] args) {
long a = 3213546546867L;
int b = 5646541;
short c = 3000;
byte d = 100;

System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c*d);//int
}
}


package operator;

public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果: 正确,错误 布尔值
//if

int a = 10;
int b = 20;
int c = 21;

//取余,模运算
System.out.println(c%a);// c/a 21/10=2...1

System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}


package operator;

public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 , 自减 一元运算符
int a = 3;

int b = a++; //执行完这行代码后,先给b赋值,在自增
//a = a + 1;
System.out.println(a);//4
System.out.println(b);//3


//a = a + 1;
int c = ++a; //执行完这行代码前,先自增,在给c赋值

System.out.println(a);
System.out.println(b);
System.out.println(c);


//幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}


package operator;

//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;

System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,结果就为true
System.out.println("!(a && b):"+!(a&&b));//逻辑非运算:如果是真,则变为假;如果是假,则变为真

//短路运算
System.out.println("a && b:"+(b&&a));//因为b已经是false,所以后面的a不执行
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(c);//5
System.out.println(d);//false
}
}


package operator;

public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
---------------------------
A&B = 0000 1100 两个都为1,结果才为1
A|B = 0011 1101 两个有一个1,结果则为1
A^B = 0011 0001 相同为0,不同为一
~B = 1111 0010 取反

2*8 = 16 2*2*2*2
效率极高!!!
<< *2
>> /2

0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16

*/

System.out.println(100<<3);
System.out.println(2<<3);
}
}


package operator;

public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;

a+=b; //a = a+b
a-=b; //a = a-b
b+=b; //b = b+b

System.out.println(a);//10
System.out.println(b);//40

//字符串连接符 + ,String
System.out.println(""+a+b);//1040
System.out.println(a+b+"");//50
System.out.println(a+""+b);//1040
System.out.println(""+(a+b));//50
}
}


package operator;

//三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
// 如果x==true,则结果为y,否则结果为z

int score = 20;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
}
}
posted @   汤川学  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示