第二天:运算符
运算符
- 运算符:进行特定操作的符号,例如:+
- 表达式:用运算符来接起的式子,例如: 20+5 又例如:a+
1. 四则运算符
- 加:+
- 减:-
- 乘:*
- 除:/
2.取模(求余数):%
注意事项:
- 一旦运算当中有不同类型的数据,那么结果将会是数据范围大的那种
- 对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果任然是整数。只看商,不看余数
- 只有对于整数的除法来说,取模运算才有余数的意义
实例
public class Demo04Operator {
public static void main(String[] args) {
// 两个常量之间可以进行数学运算
System.out.println(20 + 30); // 50
// 两个变量之间也可以进行数学运算
int a = 20;
int b = 30;
System.out.println(a - b); // -10
// 变量和常量之间可以进行混合使用
System.out.println(a * 10); // 200
int x = 10;
int y = 3;
int result1 = x / y;
System.out.println(result1); // 3
int result2 = x % y;
System.out.println(result2); // 1
// int + double --> double + double = double
double result3 = x + 2.5;
System.out.println(result3);
}
}
3. 四则运算当中的加号"+"
- 对于数值来说,那就是加法
- 对于字符char来说,在计算之前,char会被提升成为int,然后计算。char类型字符,和int类型数字之间的对照关系表:ASCII、Unicod
- 对于字符串String(首写字母大写,并不是关键字)来说加号代表连接操作
四则运算当中的加号"+" 实例
public class Demo05Plus {
public static void main(String[] args) {
// 字符串类型的变量基本使用
// 数据类型 变量名称 = 数据值
String str1 = "Hello";
System.out.println(str1); // Hello
System.out.println("hello" + "world"); // helloworld
String str2 = "java";
// String + int -->String
System.out.println(str2 + 20); // java20
// 优先级问题
// String + int + int
// String + int
// String
System.out.println(str2 + 20 + 30); // java2030
System.out.println(str2 + (20 + 30)); // java50
}
}
4. 自增自减运算符
- 自增运算符:++
- 自减运算符:--
- 基本含义:让一个变量张一个数字1,或者让一个变量降一个数字1
- 使用格式:写在变量名称之前,或者在变量名称之后,例如:++num,也可以num++
- 使用方法:
- 单独使用:不和其他任何操作混合,自己成为一个步骤
- 混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等等。。。
- 使用区别
- 在单独使用的时候,前++和 后++没有任何区别,也就是:++num;和num++;完全一样
- 在混合使用时,有巨大区别
- 如果是【前++】,那么变量立刻马上+1,然后拿着结果进行使用。【先加后用】
- 如果是【后++】,那么首先使用变量本来的数值,然后让变量+1。【先用后加】
注意事项
- 只有变量才能使用自增自减操作,常量不可发生改变,所以不能使用
自增自减实例
public class Demo06Operator {
public static void main(String[] args) {
int num1 = 10;
System.out.println(num1); // 10
++num1; // 单独使用,前++
System.out.println(num1); // 11
num1++; // 单独使用,后++
System.out.println(num1); // 12
System.out.println("==============");
// 与打印操作混合使用的时候
int num2 = 20;
// 混合使用,先++,变量立刻马上变成21,然后打印结果
System.out.println(++num2); // 21
System.out.println(num2); // 21
System.out.println("==============");
int num3 = 30;
// 混合使用,后++,首先使用变量本来的30,然后再让变量+1得到31
System.out.println(num3++); // 30
System.out.println(num3); // 31
System.out.println("==============");
int num4= 40;
// 和赋值操作混合
int result1 = --num4; // 混合使用,前--,变量立刻马上-1变成39,然后赋值给result1
System.out.println(result1); // 39
System.out.println(num4); // 39
System.out.println("==============");
int num5 = 50;
// 混合使用,后--,首先把本来的数字50交给result2,然后我自己再-1变成49
int result2 = num5--;
System.out.println(result2); // 50
System.out.println(num5); // 49
System.out.println("==============");
int x = 10;
int y = 20;
int result3 = ++x + y--; // 11 + 20 = 31
System.out.println(result3); // 31
System.out.println(x); // 11
System.out.println(y); // 19
// 30++; // 错误
}
}
5. 赋值运算符分为
-
基本运算符,就是一个等号"=",代表将右侧的数据交给左侧的变量
int a = 30; -
复合赋值运算符
+= 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 Demo07Operator {
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
// 50 = 30; // 常量不能进行赋值,不能写在赋值运算符的左边,错误写法
byte num = 30;
num += 5;
// num = num + 5
// num = byte + int
// num = int + int
// num = int
// num = (byte)int
System.out.println(num); // 35
}
}
6. 比较运算符
- 大于 >
- 小于 <
- 大于等于 >=
- 小于等于 <=
- 相等 == 【两个等号连写才是相等,一个等号代表的是赋值】
- 不相等 !=
注意事项
- 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
- 如果进行多次判断,不能进行连接写
比较运算符 实例
public class Demo08Operator {
public static void main(String[] args) {
System.out.println(10 > 5); // true
int num1 = 10;
int num2 = 12;
System.out.println(num1 < num2); // true
System.out.println(num2 >= 100); // false
System.out.println(num2 <= 100); // true
System.out.println(num2 <= 12); // true
System.out.println("=============");
System.out.println(10 == 10); // true
System.out.println(20 != 25); // true
System.out.println(20 != 20); // false
int x = 2;
// System.out.println(1 < x < 3); // 错误
}
}
7.逻辑运算符
- 与(并且)&& 全都是true,才是true,否则就是false
- 或(或者)|| 至少一个是true,就是true;全是false,才是false
- 非(取反)! 本来是true,变成false;本来是false,变成true
注意事项
-
逻辑运算符只能用于Boolean值
-
与、或需要左右各自一个boolean值,但是取反只有一个唯一的一个Boolean值即可
-
与、或两种运算符,如果有多个条件。可以连续写
-
与"&&",或"||",具有短路效果,如果根据左边已经可以判断得到的最终结果,那么右边的代码将不再执行,从而节省一定的性能
-
tips:
对于 1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来 int x = 2; 1 < x && x < 3;
逻辑运算符
public class Demo09Logic {
public static void main(String[] args) {
System.out.println(true && false); // false
System.out.println(true && true); // true
System.out.println("==============");
System.out.println(true || false); // true
System.out.println(true || true); // true
System.out.println(false || false); // false
System.out.println("==============");
System.out.println(true); // true
System.out.println(!true); // false
System.out.println("==============");
int a = 10;
System.out.println(3 > 4 && ++a < 100); // false
System.out.println(a); // 10
System.out.println("==============");
int b = 20;
System.out.println(3 < 4 || ++b < 100); // true
System.out.println(b); // 20
}
}
8. 三元运算符
- 三元运算符:需要三个数据才可以进行的运算符
- 格式:数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
- 流程:
- 首先判断条件是否成立
- 如果成立为true,那么表达式A的值赋值给左侧的变量
- 如果不成立为false,那么将表达式B的值赋值给左侧的变量
注意事项
- 必须保持表达式A和表达式B都符合左侧数据类型的要求
- 三元运算符的结果必须被使用
三元运算符 实例
public class demo10Operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 数据类型 变量名称 = 条件判断 ? 表达式A :表达式B
// 判断a>b是否成立,如果成立将a的值赋值给max
int max = a > b ? a : b; // 最大值的变量
System.out.println(max); // 20
// int result = 3>4 ? 2.5 :10; // 错误写法
System.out.println(a > b ? a : b); // 20
// a > b ? a : b; // 错误写法
}
}

浙公网安备 33010602011771号