1.运算符:进行特定操作的符号。
表达式:用运算符连起来的式子叫做表达式。
2.具体类型:
2.1加减乘除 取模
public class DemoPerator {
public static void main(String[] args) {
//加:
System.out.println(20 +30); //两个常量可以进行运算
//减:
int num1 =10;
int num2 =20;
System.out.println(num1 - num2); //两个变量也可以进行运算
//乘:
int num3 =10;
System.out.println(num3 *10); //变量和常量也可以混合运算。
//除:
int num4 =10;
int numchu =3;
int result1 = (num4 / numchu);
System.out.println(result1); //对于整数表达式,除法 / 用的是整除,只保留商,不保留余数。
int result2 = (num4 % numchu);
System.out.println(result2); //求余数用 %(取模运算符) 计算。
System.out.println("================");
double result3 = num4 +2.5; //int + double-->double + double -->double
System.out.println(result3); //结果为12.5
}
}
2.3.“+” 的用法
1.对于数值来说就是加法。
2.对于char来说就是转换成int进行计算。
3.对于字符串String(首字母大写)来说,加号“+”代表字符串连接。
4.任何数据类型和String相连都是转换成String类型。
public class DemoStr {
public static void main(String[] args) {
String s1 ="Hello ";
String s2 ="World";
String result1 = s1 + s2;
System.out.println("Hello "+"Java");
System.out.println(result1);
System.out.println("============");
System.out.println(result1+100);
System.out.println(result1+5.20);
System.out.println(result1+'A');
System.out.println(result1+true);
}
}
TIP:优先级:小括号优先!
2.4.自增运算符,自减运算符。
4.1基本含义:让变量增加一个数字1,或者减少一个数字1;
4.2用法:1.单独使用 :++num 和 num++没有任何区别
2.混合使用 :
A:++num:马上变量值+1,然后拿着结果进行使用。 【先加后用】
B:num++: 首先使用变量原本的数值,然后值再+1; 【先用后加】
示例:
public class DemoACnum {
public static void main(String[] args) {
int num =10;
num++;
System.out.println("第一次num++: "+num);
++num;
System.out.println("第二次++num "+num);
System.out.println("===============");
//与打印操作混合
int num1 =10;
System.out.println(num1++); //此时结果为10
System.out.println(num1); //再打印一次num1,此时结果为11
System.out.println("===============");
int num2 =20;
System.out.println(++num2); //此时结果为21
System.out.println(num2); //此时结果仍旧是21
System.out.println("===============");
int num3 =30;
int result1 = --num3;
System.out.println(result1); //此时result1 = 29
System.out.println(num3); //此时num3也为29
System.out.println("===============");
int num4 =40;
int result2 = num4--;
System.out.println(result2); //result2的值为40
System.out.println(num4); //num4的值减一,为39
System.out.println("===============");
//混合自增自减分析
int x =10;
int y =20;
int result3 = ++x + y--;
System.out.println(result3); //result3:31
System.out.println(x); //x:11
System.out.println(y); //y:19
}
}
TIP:常量不可以使用自增自减。比如“”20++“”是错误的!
2.5 赋值运算符
2.5.1:基本赋值运算符:“=” (只有一个等号)。表示把右边的值赋值给左边
2.5.2:复合赋值运算符:
+=: a+=3 相当于a=a+3
-= : b-=4 相当于b=b-4
*= : c*=5 相当于c=c*5
/= : d/=6 相当于d=d/6
%=: e%=7 相当于e=e%7
public class GiveData {
public static void main(String[] args) {
int a =7;
a+=3;
System.out.println(a); //此时a=10;
a-=4;
System.out.println(a); //此时a=6
a*=5;
System.out.println(a); //此时a=30
a/=6;
System.out.println(a); //此时a=5
a%=7;
System.out.println(a); //此时a=5
}
}
TIP:1.常量不能进行赋值运算。
2.赋值运算包含隐式类型转换。
2.6:比较运算符
比较运算符有六种:
==:比较符号两边数值是否相等,相等为true,否则为false。
<: 比较符号左边的数据是否小于右边的数据,如果小于则为true,否则为false。
>: 比较符号左边的数据是否大于右边的数据,如果大于则为true,否则为false。
<=: 比较符号左边的数据是否小于或者等于右边的数据,如果小于则为true,否则为false。
>=: 比较符号左边的数据是否大于或者等于右边的数据,如果大于则为true,否则为false。
!=: 不等于符号,如果等式两边不相等,结果是true,否则为false;
public class DemoCompare {
public static void main(String[] args) {
System.out.println(10>5); //结果为true
System.out.println(5>10); //结果为false
System.out.println("===============");
int num1 =10;
int num2 =20;
System.out.println(num1
System.out.println(num2
System.out.println("===============");
int num3 =30;
System.out.println(num3>=100); //结果为false
System.out.println(num3<=100); //结果为true
System.out.println(num3<=30); //结果为true
System.out.println("===============");
System.out.println(10==10); //结果为true
System.out.println(15!=20); //结果为true
System.out.println(20!=20); //结果为false
}
}
TIP:1.比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。
2.不能连着写,比如1<x<3(先判断1<x为true,但是true<5就不能判断了)。
2.7:逻辑运算符
三种:与、或、非。
与(并且):&& 全部都是true,结果才是true。否则就是false。
或(并且):|| 至少有一个true,结果就是true。全都是false,结果就是false。
非(取反):! 结果相反。本来是true,加了!就变成false.
public class DemoLuoji {
public static void main(String[] args) {
System.out.println(true&&true); //结果为true
System.out.println(true&&false); //结果为false
System.out.println("==============");
System.out.println(true||true); //结果为true
System.out.println(true||false); //结果为true
System.out.println(false||false); //结果为false
System.out.println("==============");
System.out.println(!true); //结果为false
System.out.println(!false); //结果为true
System.out.println("==============");
int a =10;
System.out.println(3>4&&++a<100); //++a不执行,因为前半部分false已经结束
System.out.println(a); //a为10
}
}
TIP:
1.逻辑运算符只能用于boolean值。
2.与、或需要左右各有一个boolean值,但是非只需要有一个。
3.与、或如果有多种条件可以连续写,比如上一小节1<x<5.写成 int x = 5; 1<x && x<5
4与、或具有短路效应,但左边判断值成立后,右边不再执行。
2.7:三目运算符
2.7.1含义:需要三个数据才可以进行操作的运算符
2.7.2格式: 变量名称 = 条件判断 >表达式A : 表达式B
2.7.2流程:1.首先判断条件是否成立。如果成立,将表达式A赋值给左边的变量。如果不成立,将表达式B赋值给左边的变量。
public class DemoThreefu {
public static void main(String[] args) {
int num1 =10;
int num2 =20;
int max = num1 > num2 ? num1 : num2;
System.out.println(max); //max结果为大的数字20
//特殊写法
System.out.println(num1 > num2 ? num1 : num2);
}
}
TIP:
1.必须同时保证表达式A和表达式B都符合左侧的变量数据类型
2.三目运算符的结果必须被使用。(如特殊写法里的打印语句),否则会报错。