👨💻博客主页:i新木优子👀
🏆Java基础系列教程:传送门💦
🧚♂️寄语:天下无难事,唯坚忍二字,为成功值要诀👣
🎉欢迎关注🔍点赞👍收藏⭐留言📝
🙏作者水平有限,发现错误欢迎留言轰炸
文章目录
1.算术运算符
1.1运算符和表达式
-
运算符:对常量或者变量进行操作的符号
-
表达式:用运算符把常量或者变量连接起来符合Java语法的式子称为表达式。
不同的运算符连接的表达式体现的时不同类型的表达式
-
示例:
int a = 1;
int b = 2;
int c = a + b;
+:是运算符,并且是算术运算符
a + b:是表达式,由于+是算术运算符,所以叫算术表达式
1.2算术运算符
package heima;
public class suanshuyunsuan {
public static void main(String[] args){
//定义两个变量
int a = 6;
int b = 4;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); // 除法得到的是商
System.out.println(a % b); // 取余得到的是余数
// 整数相除只能得到整数,要想得到小数,必须有浮点数的参与
System.out.println(6.0 / 4);
}
}
1.3字符的 “+” 操作
package heima;
public class ZiFu {
public static void main(String[] args){
int a = 10;
char c = 'A'; // 'A'的值是65
c = 'a'; // 'a'的值是97
c = '0'; // '0'的值是48
System.out.println(c + a);
int j = c + a; //自动提升到int类型
System.out.println(j);
}
}
算术表达式中包含多个数据类型的值的时候,整个算术表达式的类型会自动进行提升
提升规则:
-
byte类型、short类型和char类型将被提升到int类型
-
整个表达式的类型自动提升到表达式中最高等级操作数同样的等级
等级顺序:byte,short,char -> int -> long -> float -> double
1.4字符串的 “+” 操作
当 ”+“ 操作中出现字符串时,这个 ”+“ 是字符串连接符,而不是算术运算
- “xiaoxin” + 666
当 ”+“ 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行 ”+“ 操作时,从左到右逐个执行
- 1 + 99 + “xiaoxin”
package heima;
public class ZiFuChuan {
public static void main(String[] args) {
System.out.println("xiao" + "xin"); // xiaoxin
System.out.println("xiaoxin" + 666); // xiaoxin666
System.out.println(666 + "xiaoxin"); // 666xiaoxin
System.out.println("xiaoxin" + 6 + 66); // xiaoxin666
System.out.println(1 + 99 + "xiaoxin"); // 100xiaoxin
}
}
2.赋值运算符
注意:扩展的赋值运算符隐含了强制类型转换
3.自增自减运算符
package heima;
public class ZiZengZIJian {
public static void main(String[] args){
//定义变量
int i = 10;
System.out.println("i:" + i);
//单独使用
//i++; // 使用这种居多
//++i;
//System.out.println("i:" + i); // 11
//参与操作使用
//int j = i++;
//System.out.println("i:" + i); // i:11
//System.out.println("j:" + j); // j:10
int j = ++i;
System.out.println("i:" + i); // i:11
System.out.println("j:" + j); // j:11
}
}
注意:
-
++ 和 – 既可以放在变量的后边,也可以放在变量的前边
-
单独使用时,++ 和 – 无论放在后边还是前边,结果都一样
-
参与操作使用时,如果放在变量的后边,先拿变量参与操作,后拿变量做 ++ 或 –
参与操作使用时,如果放在变量的前边,先拿变量做 ++ 或 --,后拿变量参与操作
最常见的用法:单独使用
4.关系用算符
package heima;
public class GuanXi {
public static void main(String[] args){
int i = 10;
int j = 20;
int k = 10;
//==
System.out.println(i == j); // false
System.out.println(i == k); // true
System.out.println("-----");
//!=
System.out.println(i != j); // true
System.out.println(i != k); // false
System.out.println("-----");
//>
System.out.println(i > j); // false
System.out.println(i > k); // false
System.out.println("-----");
//>=
System.out.println(i >= j); // false
System.out.println(i >= k); // true
System.out.println("-----");
}
}
5.逻辑运算符
package heima;
public class LuoJi {
public static void main(String[] args) {
int i = 10;
int j = 20;
int k = 30;
//& 有false则false
System.out.println((i > j) & (i > j)); // false & false --> false
System.out.println((i < j) & (i > j)); // true & false --> false
System.out.println((i > j) & (i < j)); // false & true --> false
System.out.println((i < j) & (i < j)); // true & true --> true
System.out.println("-------");
//| 有true则true
System.out.println((i > j) | (i > j)); // false | false --> false
System.out.println((i < j) | (i > j)); // true | false --> true
System.out.println((i > j) | (i < j)); // false | true --> true
System.out.println((i < j) | (i < j)); // true | true --> true
System.out.println("-------");
//^ 相同为false,不同为true
System.out.println((i > j) ^ (i > j)); // false ^ false --> false
System.out.println((i < j) ^ (i > j)); // true ^ false --> true
System.out.println((i > j) ^ (i < j)); // false ^ true --> true
System.out.println((i < j) ^ (i < j)); // true ^ true --> false
System.out.println("-------");
//!
System.out.println((i > j)); // false --> false
System.out.println(!(i > j)); //!false --> true
System.out.println(!!(i > j)); //!!false --> false
}
}
5.1短路逻辑运算符
package heima;
public class LuoJi {
public static void main(String[] args) {
int i = 10;
int j = 20;
int k = 30;
//&& 有false则false
System.out.println((i > j) && (i > j)); // false && false --> false
System.out.println((i < j) && (i > j)); // true && false --> false
System.out.println((i > j) && (i < j)); // false && true --> false
System.out.println((i < j) && (i < j)); // true && true --> true
System.out.println("-------");
//|| 有true则true
System.out.println((i > j) || (i > j)); // false || false --> false
System.out.println((i < j) || (i > j)); // true || false --> true
System.out.println((i > j) || (i < j)); // false || true --> true
System.out.println((i < j) || (i < j)); // true || true --> true
//&& 和 &
System.out.println((i++ > 100) & (j++ > 100)); // false & false --> false
System.out.println("i:" + i); // i:11
System.out.println("j:" + j); // j:21
System.out.println((i++ > 100) && (j++ > 100)); // false && false --> false
System.out.println("i:" + i); // i:11
System.out.println("j:" + j); // j:20
}
}
注意:
-
逻辑与&,无论左边真假,右边都要执行
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行
-
逻辑或|,无论左边真假,右边都要执行
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行
6.三元运算符
6.1三元运算符
-
格式:关系表达式 ? 表达式1 : 表达式2;
示例:a > b ? a : b;
-
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
案例1:(两只老虎)
-
分析:定义两个变量用于保存老虎的体重
int weight1 = 180;
int weight2 = 200;
-
用三元运算符实现老虎体重的判断,相同返回true,不同返回false
(weight1 == weight2) ? true : false;
-
输出结果
package heima; public class TwoTiger { public static void main(String[] args) { int weight1 = 180; int weight2 = 200; boolean a = weight1 == weight2 ? true : false; System.out.println("a:" + a); } }
案例2:(三个和尚)
需求:一个寺庙中住着三个和尚,已知他们的身高分别为150cm、185cm、165cm,请用程序来实现获取三个和尚的最高身高
-
分析:定义三个变量保存和尚的身高
int height1 = 150;
int height2 = 185;
int height3 = 165;
-
用三元运算符获取前两个较高的身高,并用临时变量保存起来
(height1 > height2) ? height1 : height2;
-
用临时变量和第三个身高比较
(tempheight > height3) ? tempheight : height3;
-
输出结果
package heima; public class ThreeMonk { public static void main(String[] args) { int height1 = 150; int height2 = 185; int height3 = 165; int tempheight = (height1 > height2) ? height1 : height2; int maxheight = tempheight > height3 ? tempheight : height3; System.out.println("maxheight;" + maxheight); } }