一.运算符
(1)算术运算符
public class AriTest {
public static void main(String[] args){
//(前)++ 先自增1,再运算
int a1 = 10;
int b1 =++a1;//a1先自增1(10+1=11),再进行运算将11赋值给b1,所以b1=11
System.out.println("a1 = " + a1 + ",b1 = " +b1);//a1 = 11,b1 = 11
//(后)++ 先运算,后自增1
int a2 = 10;
int b2 = a2++;//先进行运算a=10赋值给b2,所以b2=10,再自增1,a2=10+1=11
System.out.println("a2 = " + a2 + ",b2 = " +b2);//a2 = 11,b2 = 10
//没有赋值运算时,自增1的写法
short c = 10;
c++;
System.out.println(c);//11
}
}
(2)赋值运算符
(3)比较运算符
(4)逻辑运算符
/*
运算符4:逻辑运算符
&逻辑与 &&短路与
|逻辑或 ||短路或
!逻辑非
^逻辑异或
说明:逻辑运算符只适用于boolean类型
*/
public class AirTest4 {
public static void main(String[] args){
//区分& 与 &&
//单&
System.out.println("********逻辑与& 短路&&**************************");
boolean b1 = true;
b1 = false;
int num1 = 10;
if(b1 & (num1++ >0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num1 = " + num1);
System.out.println("**********************************");
//双&&,
// 1.当符号左边(boolean为true)是true时都进行执行计算
// 2.当符号左边(boolean为false),短路后不会进行if里面不会进行执行直接绕过去了
boolean b2 = true;
b2 = false;
int num2 = 10;
if(b2 && (num2++ >0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num2 = " + num2);
System.out.println("**************逻辑或与短路或********************");
//区分 |逻辑或 ||短路或
//相同点: |与||运算那结果相同
//相同点2:当符号左边是false时两者会执行右边的计算
//不同点:当符号左边是true时,|继续执行,||不执行
boolean b3 = true;
b3 = false;
int num3 = 10;
if(b3 | (num2++ >0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num3 = " + num3);
System.out.println("**********************************");
boolean b4 = true;
b4 = false;
int num4 = 10;
if(b4 | (num2++ >0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num4 = " + num4);
}
}
(5)位运算符
package TEXT;
public class numchange {
public static void main(String[] args){
//练习:交换两个变量的值
int num1 = 10;
int num2 = 20;
//方式一:定义临时变量
int temp = num1;
num1 = num2;
num2 = temp;
System.out.println("num1 = " + num1 + ",num2 = " + num2);
//方式二:计算法,弊端:数据可能会超出存储范围,有一定局限性
int num3 = 10;
int num4 = 20;
num3 = num3 + num4;
num4 = num3 - num4;
num3 = num3 - num4;
System.out.println("num3 = " + num3 + ",num4 = " + num4);
}
}
(6)三元运算符
/*
运算符之6:三元运算符
1.结构:(条件表达式)?表达式1:表达式2
2.说明:
(1)条件表达式的结果为boolean类型
(2)根据条件表达式真或假,决定执行表达式1,还是表达式2
如果表达式为true,则执行表达式1
如果表达式为false,则执行表达式2
(3)表达式1和表达式2要求是一致的
(4)三元运算符可以签到使用
3.凡是可以使用三元运算符的地方都可以改写为if -else
*/
public class SanYuanText {
public static void main(String[] args){
//获取两个整数的较大值
int m = 12;
int n = 5;
int max = (m > n)? m : n;
System.out.println(max);
//三元运算符的嵌套
String maxStr = (m > n)? "m大" : ((m == n)? "m和n相等" : "n大");
System.out.println(maxStr);
//获取三个数的最大值
int n1 = 12;
int n2 = 30;
int n3 = -43;
int max1 = (n1 > n2)? n1 : n2;
int max2 = (max1 > n3)? max1 : n3;
System.out.println(max2);
}
}