运算符:
赋值运算符: =、 +=、-=、*=、/=、%=
算术运算符 :++、– +、-、*、/、%
关系(比较)运算符:> 、>= 、 < 、<=、 ==、!=
逻辑运算符: &&、||、!、&、|、
三目运算符 : a?b:c
赋值运算:
**
* 赋值运算
* = += -= *= /= %=
*/
public class Operator01 {
public static void main(String[] args) {
int a;
a = 10;//把10赋值给变量a
//+=
int b = 10;
b += 10;// 相当于b = b+10,变量b先加10再重新赋值给b变量。
b -= 5;// 相当于b = b-5,变量b先减10再重新赋值给b变量。
b *= 5;//等于b = b *5
b /= 5;//等于b = b /5
b %= 5;//等于b = b%5 ,变量b取余数再重新赋值给b变量。
}
}
算术运算:
/**
* 算术运算:
* + - * 、 % ++ --
*
* +两边都是数字的时候做加法运算
* 只要+号两边有一边是字符串就做字符串连接
*/
public class Operator02 {
public static void main(String[] args) {
int a = 11;
int b = 5;
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);//取余
//++ 自增 -- 自减
int i = 1;
i++; // 相当于 i = i + 1;和 i += 1;
System.out.println(i);//2
i--;
System.out.println(i);//1
//++的位置 ++(--)可以出现在变量之前 也可以出现在变量之后
int num1 = 1;
int num2 = num1++;//++在变量之后是先赋值再自加
System.out.println(num1);//2
System.out.println(num2);//1
int num3 = 1;
int num4 = ++num3;//++变量之前是先自加再赋值
System.out.println(num3);//2
System.out.println(num4);//2
}
}
比较运算符:
/**
* 比较运算符
* > < == != >= <=
* 得到的是布尔值
*/
public class Operator03 {
public static void main(String[] args) {
int a = 100;
int b = 50;
System.out.println(a>b);//true,大于
System.out.println(a>=b);//true大于等于
System.out.println(a<b);//false小于
System.out.println(a<=b);//false小于等于
System.out.println(a==b);//false 等于
System.out.println(a!=b);//true 不等于
}
}
逻辑运算符:
/**
* 逻辑运算符
* ! 非
* | 或 有真为真
* & 与 有假为假
* && 短路与 遇假则停
* || 短路或 遇真则停
*/
public class Operator04 {
public static void main(String[] args) {
//逻辑表达式中运算(逻辑运算)两边是布尔值,结果也是布尔值
int i1 = 10;
int i2 = 100;
System.out.println(i1<20|i2<20);//true|false 结果是true
System.out.println(i1<20&i2<20);//true|false 结果是 false
System.out.println(i1<20&i2>20);//true|true 结果是 true
/* & | 逻辑与 逻辑或
* && || 短路与 遇假则停 短路或 遇真则停
* 相同:& && 有假则假 (在逻辑上说他们功能一样)
* 不同:(效率不同) &&效率高
*/
boolean b1 = true;
boolean b2 = false;
System.out.println(b1&b2);// 输出:false
System.out.println(b1&&b2);// 输出:false
System.out.println(b1&b1);// 输出:true
System.out.println(b1&&b1);// 输出:true
int num1 = 1;
boolean b3 = b2&num1++>1;//b2是false,但num1++>1还会执行,所以下面输出 num1是2
System.out.println(b3);//输出:false
System.out.println(num1);//输出:2
int num2 = 1;
boolean b4 = b2&&num2++>1;b2是false,遇假则停,num2++>1不执行,所以下面输出num2 是1
System.out.println(b4);//输出:false
System.out.println(num2);//输出:1
//&和 &&结果要为真必须两边都为真
//当第一个式子就能判断出整个式子的值时,&会继续执行第二个式子,而&&则不会执行第二个式子
}
}
三目运算符:
/**
* 三目运算符(三元 条件)
* 语法:
* 布尔表达式?表达式1:表达式2;
* 如果boolean为真则执行表达式1,为假则执行表达式2
*/
public class Operator05 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int num = a>b?10:20;
System.out.println(num);//输出:20
//注意:三目运算法的类型
//int num1 = a>b?10:3.14;//ERROR 类型不一致
System.out.println(a>b?10:3.14);//可以直接打印
//注意 : 嵌套
int num2 = a>b?a<b?10:20:a>10?15:30;//简单嵌套
System.out.println(num2);//30
}
}
如果大牛发现有错误或不对或理解有误,欢迎指正。