java学习(四)运算符
算术运算符:加、减、乘、除、自加、自减、取余
-
++出现在变量前,先进行自加1,然后再复制
-
++出现在变量后,先赋值,然后再自加1
代码如下
public class Operator_01{
public static void main(String[] args){
int a = 10;
int b = 3;
System.out.println(a+b); //13
System.out.println(a-b); //7
System.out.println(a*b); //30
System.out.println(a/b); //3
System.out.println(a%b); //1
//重点掌握++ 和 --
//++是自加1,可以出现在变量前,也可以出现变量后,只要++结束就是自加1
int j = 100;
j++;
System.out.println(j); //101
int k = 200;
k--;
System.out.println(k); //199
//++出现在变量前和变量后有啥区别?
//语法:当++出现在变量后,会先做赋值运算传值,然后再自加1
int m =10;
int n = m++;
System.out.println(m); //11
System.out.println(n); //10
//++出现在变量前,会先进行自加1,然后赋值
int x =10;
int y = ++x;
System.out.println(x); //11
System.out.println(y); //11
int c =80;
int d = 90;
System.out.println(c++); //80 当++出现在变量后,会先做赋值运算传给括号输出,再自加1
System.out.println(c); //81
System.out.println(++d); //91
System.out.println(d); //91
}
}
关系运算符:>、>=、<、<=、==、!=
-
所有关系运算符的结果都是布尔类型
逻辑运算符:&、|、!、&&、||,逻辑与或非,短路与短路或
-
逻辑运算符两边是布尔类型,结果也是布尔类型
扩展的赋值运算符:==、+=、*=、/=、%=
-
普通赋值运算符语法:右边先执行,再赋值给左边
-
使用扩展运算符的时候,永远不会改变运算结果的类型
-
代码
public class Operator_03{ public static void main(String[] args){ int k = 20; k += 30; System.out.println(k); // i += 1和 i = i+1有啥区别 byte x = 20; System.out.println(x); //这行代码报错?等号右边结果是int,左边是byte,不兼容的类型 //x = x+1; //System.out.println(x); //下面这个代码不报错原因? //使用扩展赋值运算符的时候,永远都不会改变运算结果类型 //其实在这里的 x += 1就等同 x = (byte)(x+1) x += 1; System.out.println(x); x += 300; System.out.println(x);//超出byte的最大值,不会报错,但会损失精度, } }
条件运算符(三目运算符)
-
布尔表达式?布尔表达式1:布尔表达式2
-
如果布尔表达式结果为true,表达式1即为结果
-
如果布尔表达式结果为false,表达式2即为结果
-
public class Operator_04{
public static void main(String[] args){
//条件运算符
//boolean sex = true;
//char c = sex ? '男' : '女';
//System.out.println(c);
//一个单引号一个双引号编译器会不会报错?错误: 不兼容的类型: 条件表达式中的类型错误,
//等式右边字符串String类型 等式左边char类型,编译报错
//boolean sex = false;
//char c = sex ? '男' : "女";
//System.out.println(c);
//不指定类型,直接放进打印还会报错吗?不会,可以输出字符串女
boolean sex = false;
System.out.println( sex ? '男' : "女");
}
}
字符串拼接
-
当“+”运算的时候,两边的操作数都是数字的话,一定会进行求和运算,只 要其中有一个操作数是字符串类型,那么一定会进行字符串拼接运算,字符串拼接之后的结果 还是字符串类型。
-
需要注意的是,当一个表达式当中有多个“+”,并且在没有小括号的前提 下,遵循自左向右的顺序依次执行。