package com.itheima_01;
*
* 运算符:就是用于对常量和变量进行操作的符号
* 表达式:用于运算符链接起来的符合Java语法的式子,不同的运算符连接的表达式是不同类型的表达式
* 举例:a,b
* a + b
* 运算符分类:
* 算术运算符:
* +,-,*,/,%,++,--
* a.字符参与加法运算:字符在计算机中存储的数据值来参与运算
* 'A' 65
'a' 97
'0' 48
* b.字符串参与加法运算是字符的拼接
* c.++ -- 自增自减
* 单独使用a++,++a结果一样
* ++在后,先操作变量再++
* ++在前,先变量++再操作
*
* 赋值运算符:
* 基本的赋值运算符:=
* 扩展的赋值运算符:+=,-=,*=,...
* 关系运算符:
* ==,!=,>,>=,<,<=
* 关系运算符的结果是boolean类型
* 逻辑运算符:
* &: 有False则False
* |: 有True则True
* ^: 相同則False,不同則True
* !: True则False,False则True
* 注:&&,|| 同&,|; 但&&,||更高效,满足条件即不进行下一步计算
*
* 三元运算符:
* 关系表达式?表达式1:表达式2
* 执行流程:计算关系表达式True或者False
* if True,表达式1;
* if False,表达式2;
*
*
*
public class OperatorDemo {
public static void main(String[] args) {
// 定义变量
int a = 3;
int b = 4;
System.out.println("算术运算符a=3,b=4");
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
// 整数相除只能得到整数,要想得到小数,就必须浮点数参与运算
System.out.println("浮点型运算3.0/4="+3.0 / 4);
// 字符参与加法运算:字符在计算机中存储的数据值来参与运算
char c = 'A';
System.out.println("字符参与加法运算");
System.out.println(a + c);
// 字符串参与加法运算是字符的拼接
System.out.println("hello" + c);
System.out.println("hello" + a + b);
// c+a是int类型做了加法
System.out.println(c + a + "hello");
System.out.println("a:" + a);
// ++
a++;
++a;
System.out.println("a:" + a);
// 参与其他操作
// int d=a;
int d = a++;
// int d = ++a;
System.out.println("字符参与其他++计算");
System.out.println("a:" + a);
System.out.println("d:" + d);
// +=的操作
// 拿+=的左右边数据做+,然后赋值给左边
a += 20;
System.out.println("a:" + a);
// 注意:扩展的赋值运算符,隐含了强制类型转换
// 拿+=的左(short)右(int)边数据做+,然后赋值给左边(short)
// a+=10 相当于:a = (a的数据类型)(a + 10)
short s = 1;
s += 1;
System.out.println("扩展的赋值运算符");
System.out.println("s:" + s);
// 关系运算符定义变量
int a1 = 10;
int b1 = 20;
int c1 = 10;
// ==
System.out.println("关系运算符定义变量==");
System.out.println(a1 == b1);
System.out.println(a1 == c1);
// !=
System.out.println("关系运算符定义变量!=");
System.out.println(a1 != b1);
System.out.println(a1 != c1);
// ...>,<,<=,>=自己测试
// 注意事项:
System.out.println("注意事项:关系运算符定义变量=,==");
System.out.println(a1 == b1);
System.out.println(a1 = b1);// 把b1值赋值给a1,输出a1
// 逻辑运算符& 有False则False
System.out.println("逻辑运算符& 有False则False");
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
System.out.println("逻辑运算符 | 有True则True");
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
System.out.println("逻辑运算符 ^ 相同則False,不同則True");
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则False,False则True
System.out.println("逻辑运算符! True则False,False则True");
System.out.println( ! (a > c));
System.out.println( ! (a > c));
System.out.println( ! (a < c));
System.out.println( ! (a < c));
//三元表达式
System.out.println("三元表达式");
int i = (a>b)?a:b;
System.out.println("i:"+i);
//定义两个变量
int a2=10;
int b2=20;
int c2=15;
//方法2:boolean flag = (a == b)?true:false;
boolean flag = (a2==b2);
System.out.println("比较两个整数是否相等a2=10,b2=20");
System.out.println("flag:"+flag);
//先获取两个数据的最大值,再与第三个数据比较
int temp = (a2>b2)?a2:b2;
int max = (temp>c2)?temp:c2;
System.out.println("比较三个整数最大值");
System.out.println("max:"+max);
};
}