进行特定操作的符号叫做运算符,用运算符连起来的式子就叫表达式,例如:20+5、a+b
四则运算:加+ 减- 乘* 除/
取模:% (取余数)只有对于整数的出发来说,取模运算符才有余数的意义
int x = 10;
int y = 3;
int result = x / y;
System.out.println(result);//结果为1
注意:一旦运算当中有不同类型的数据,结果将会是数据类型范围大的那种
在四则运算中,加号有常见的三种用法:
1、对于数值来说,那就是加法
2、对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算
3、对于字符串String来说,加号代表字符串连接操作
public class test1{
public static void main(String[] args){
String aaa = "111";
String bbb = "222";
System.out.println(aaa+bbb);//111222
System.out.println(aaa+20);//11120
System.out.println(aaa+"hello");//111hello
System.out.println(aaa+(20+30));//11150
}
}
自增自减运算符
自增运算符:++
自建运算符:–
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
使用格式:写在变量名称之前,或者写在变量名称之后,例如++num,也可以num++
使用方式:
1、单独使用:不和其他任何操作混合,自己独立成为一个步骤
2、混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等
3、在单独使用的时候,前++和后++没有任何区别,也就是:++num和num++完全是一样的
4、在混合使用时,有【重大区别】
A.如果是前++,那么这个变量立刻马上+1,然后拿着结果进行使用
B.如果是后++,首先使用变量本来的数值,然后再让变量+1。
注意:只有变量才能使用自增、自减运算符,常量不可能发生改变,所以不能用
以下为上述的例子:
public class test1{
public static void main(String[] args){
int num1 = 10;
System.out.println(num1);
++num1;//前++,单独使用
System.out.println(num1);
num1++;//也是单独使用,后++
System.out.println(num1);//12
System.out.println("===========");
//与打印语句混合操作的时候
int num2 = 20;
System.out.println(++num2);//混合使用,先++,马上变成21,然后打印
System.out.println(num2);
System.out.println("===========");
int num3 = 30;
System.out.println(num3++); //混合使用,后++,首先使用本来变量30,然后再让变量+1得到31。
System.out.println(num3);
System.out.println("===========");
int num4 = 40;
int result1 = --num4;//混合使用,前--,变量马上-1变成39,然后将结果39交给result1变量
System.out.println(result1);
System.out.println(num4);
int num5 = 50;
int result2 = num5--;
System.out.println(result2);
System.out.println(num5);
System.out.println("===========");
}
}
赋值运算符
赋值运算符分为:
1、基本赋值运算符:就是一个等号“=”,代表将有测试数据交给左侧的变量 int a = 30;
2、复合赋值运算符
+= a+=1 相当于 a = a+1
-= b-=2 相当于 b = b-2
= c=3 相当于 c = c * 3
/= d /= 4 相当于 d = d / 4
%= e %=5 相当于 e = e%7
注意事项:
1、只有变量才能使用赋值运算符,敞亮不能进行复制
2、复合赋值运算符,其中隐含了一个强制转换
public class test1{
public static void main(String[] args){
int a = 10;
a +=5;
System.out.println(a);//15
int x = 10;
x %=3;
System.out.println(x);//1
}
}
`
***比较运算符***
比较运算符的结果一定是一个Boolean值,城里就是true,不成立就是false,如果进行多次判断,不能连这些,程序当中不允许这种写法
***逻辑运算符***
与(并且)&& 全都是true才是true,否则就是false
或(或者)|| 有一个true就是true,全是false才是false
非(取反)! 本来是true,变成false,本来是false,变成true
与“&&”,“||”或,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再进行,从而节省一定性能
注意:
1、逻辑运算符只能用于Boolean值
2、与(&&)、或(||)需要左右各有一个布尔值,但是取反只要有唯一的一个布尔值即可。
3、与“&&”、或“||”两种运算符,如果有多个条件,可以连续写
两个条件:条件A&& 条件B
多个条件:条件A&&条件B&&条件C
tips:1<x<3 的情况,应该拆成两个部分,然后使用运算符链接起来:
int x = 2;
1 < x && x < 3;
```java
public class test1{
public static void main(String[] args){
System.out.println(true && false);//false
System.out.println(3<4 && 10>5);//true
System.out.println("===================");
System.out.println(true || false);//true
System.out.println(true && true);//true
System.out.println("==============");
System.out.println(!true);//false
System.out.println("=============");
int a = 10;
System.out.println(3>4 && ++a<100);//false,而且a不会变成11,因为&&的右半部分根本不会运行
int b = 20;
System.out.println(3<4 || ++b<100);
System.out.println(b);//b仍然是20,因为首先3<4成立为true,所以结果已经为true,后面的代码不会运行,节省内存
}
}
三元运算符
一元运算符:只需要一个数据就可以进行操作的运算符,例如:取反!,自增++、自减–
二元运算符:需要两个数据才可以操作的运算符,例如:加法+、赋值=
三元运算符:需要三个数据才可以进行操作的运算符:
格式:
数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
流程:
首先判断条件是否成立:
如果成立为TRUE,那么将表达式A的值赋值给左侧的变量
如果不成立为Flase,那么将表达式B的值赋值给左侧的变量:
二者选其一
注意事项:
1、必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
2、三元运算符的结果必须被使用。
public class test1{
public static void main(String[] args){
int a = 10;
int b = 20;
int max = a>b ? a : b ;
//判断A大于B是否成立,如果成立,将A的值赋值给max,如果不成立把B赋值给max
System.out.println("最大值:"+max);
System.out.println(a<b?a:b);
}
}