😸个人主页👉:神兽汤姆猫
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。
运算符:对常量或变量进行操作的符号。
表达式:用运算符把常量或变量连接起来符合Java语法的式子即是表达式。
不同运算符连接的表达式体现的是不同类型的表达式
int a = 10; int b = 20; int c = a + b;
以上案例中,+是运算符,且是算数运算符。a + b是表达式,由于+是算数运算符,故此表达式称为算数表达式。
算数运算符
符号 | 作用 | 说明 |
+ | 加 | 就是你能理解日常生活的加 |
- | 减 | 就是你能理解日常生活的减 |
* | 乘 | 同 x号 |
/ | 除 | 同÷号。整数相除,结果只能得整数,如果想得到有小数得结果,必须加入浮点类型(小数)的运算。取得是商。 |
% | 取余/取模 | 获取是两个数据做除法的余数/取余数 |
字符+操作
ASCII码表:美国信息交换表中代码,是计算机中字节到字符得一套对应关系。
int a = 10; char b = 'a'; System.out.println(a + b);
在上例中,a+b的运算中,a为int类型,b为char类型
Java基础篇类型转换专题,提到过(当 byte、short、char、int在一起运算时,都会提升至int后,在进行运算)
char提升int的过程之中,就是查找ASCII码表中字符所对应的数值表示形式
字符a查找到数值的97之后,在和数值10进行运算,结果为107,即输出结果为:107
字符串+操作
当+操作出现字符串时,这个+就是[字符串连接符],而不是算数运算。
在+操作时,如果出现字符串,则为连接运算符,否则为算数运算。当连续进行+操作时,从左到右逐个执行。
public static void main(String[] args) { System.out.println("神兽汤姆猫"+ 1314);//神兽汤姆猫1314 System.out.println("神兽汤姆猫"+ false);//神兽汤姆猫false System.out.println("神兽汤姆猫"+ 77.88);//神兽汤姆猫77.88 System.out.println(520+1314+"神兽汤姆猫");//1834神兽汤姆猫,在+操作时,如果出现字符串,则为连接运算符,否则为算数运算。当连续进行+操作时,从左到右逐个执行 System.out.println("9+9="+8+7);//9+9=87 System.out.println("9+9="+(8+7));//加括号,提升优先级,即可得到8+7=15,也就是9+9=15 }
案例:输入四位数,并将其拆分为个位、十位、百位、千位,并输出。
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个四位的数"); int num = sc.nextInt(); //个位数 int ge =num % 10; //十位数 int shi = num /10 %10; //百位数 int bai = num /10 /%10 10; //千位数 int qian = num /10 /10 /%10 10; // System.out.println("整数"+num+"的个位是"+ ge); System.out.println("整数"+num+"的十位是"+ shi); System.out.println("整数"+num+"的百位是"+ bai); System.out.println("整数"+num+"的千位是"+ qian); } }
自增自减运算符
符号 | 作用 | 备注 |
++ | 自增 | 变量值自身加1 |
-- | 自减 | 变量值自身减1 |
+ +
和- -
既可以放在变量前,也可以放在变量后。
注意:单独使用时,+ +
和- -
无论是放在变量前和变量后,结果是一样的
参与操作时:
++在前:先对变量做自增(++)或自减(--),然后在拿变量参与操作。
++在后:先对变量原本值,取出参与操作,随后在进行自增(++),自减(--)
最常见方式为单独使用。
+ +
和- -
只可以操作变量,不可以操作常量。
public static void main(String[] args) { //单独使用时,如下,一句代码中只做了++或-- int a = 10; a++;// a = a +1 System.out.println(a);//11 int c = 10; ++c;// a = a +1 System.out.println(c);//11 int b = 10; b--;// a = a -1 System.out.println(b);//9 int d = 10; --d;// a = a -1 System.out.println(d);//9 }
public static void main(String[] args) { //如果参与操作,则: //++在前:先对变量做自增(++)或自减(--),然后在拿变量参与操作 //++在后:先对变量原本值,取出参与操作,随后在进行自增(++),自减(--) int a = 10; int b = ++a;//先对变量做自增(++)或自减(--),然后在拿变量参与操作 System.out.println(a);//11 System.out.println(b);//11 int aa = 10; int bb = aa++;////++在后:先对变量原本值,取出参与操作,随后在进行自增(++),自减(--) System.out.println(aa);//11 System.out.println(bb);//10 // int num = 1234; System.out.println(num++);//1234 System.out.println(num);//1235 }
赋值运算符
符号 | 作用 | 示例 | 备注 |
= | 赋值 | a=10,将10赋值给变量a | 将符号右侧的数据,赋值给左边 |
+= | 加后赋值 | a+=b,将a+b的值,赋值给a | 将符号左右两边的数据,做加法运算,结果赋值给左边 |
-= | 减后赋值 | a-=b,将a-b的值,赋值给a | 将符号左右两边的数据,做减法运算,结果赋值给左边 |
*= | 乘后赋值 | a*=b,将axb的值,赋值给a | 同理 |
/= | 除后赋值 | a/=b,将a÷b的商,赋值给a | 同理 |
%= | 取余后赋值 | a%=b,将a÷b的余,赋值给a | 同理 |
扩展的赋值运算符隐含了强制类型转换
关系运算符
符号 | 作用 | 示例 | 备注 |
== | 相等 | a = =b,判断a和b的值是否相等,成立为true,不成立为false | |
!= | 不相等 | a != b,判断a和b的值是否不想等,成立为true,不成立为false | |
> | 大于 | a > b,判断a是否大于b,成立为true,不成立为false | |
>= | 大于等于 | a >= b,判断a是否大于等于b,成立为true,不成立为false | |
< | 小于 | a < b,判断a是否小于b,成立为true,不成立为false | |
<= | 小于等于 | a <= b,判断a是否小于等于b,成立为true,不成立为false |
public static void main(String[] args) { System.out.println(10 > 30);//false System.out.println(10 >= 30);//false System.out.println(10 <= 30);//true System.out.println(10 < 30);//true System.out.println(10 != 30);//true System.out.println(10 == 30);//false }
逻辑运算符
在生活中如果我们需要表达某个数据a,大于10,小于20,我们一般这样表示:10<a<20,但这只符合生活中数学语法。
在Java中,我们则需要对其进行拆解再合并进行表达。
拆解:a>10和a<20
合并:a>10&a<20 //a>10并且a<20
作用:用于[整合]多个比较表达式的条件:
连接多个比较表达式
连接true或false
最终得到的结果都是boolean类型的true或false
符号 | 作用 | 备注 |
&(逻辑与) | 并且 | 遇到false则false,只有符号左右两边同时为true,结果才为true |
|(逻辑或) | 或者 | 遇到true则true,只有符号左右两边同时为false,结果才为false |
!(逻辑非) | 取反 | 反过来 |
^(逻辑异或) | 相同为false,不同为true |
public static void main(String[] args) { System.out.println("------以下为与&的示例输出-------"); System.out.println(true & true);//true System.out.println(false & false);//false System.out.println(true & false);//false System.out.println(false & true);//false System.out.println("------以下为或|的示例输出-------"); System.out.println(true | true);//true System.out.println(false | false);//false System.out.println(true | false);//true System.out.println(false | true);//true System.out.println("------以下为非!的示例输出-------"); System.out.println(! true);//false System.out.println(!! true);//true System.out.println("------以下为异或^的示例输出-------"); System.out.println(true ^ true);//false System.out.println(false ^ false);//false System.out.println(true ^ false);//true System.out.println(false ^ true);//true //理解异或,以当前现实婚姻情况为前提,假设false为男,true为女,男女可以,男男或者女女就不可以。 }
短路逻辑运算符
符号 | 作用 | 备注 |
&& | 短路与 | 和&作用相同,都是并且的作用,但是有短路效果 |
|| | 短路或 | 和| 作用相同,都是或者的作用,但是有短路效果 |
&和&&的区别?:
&没有短路效果,无论符号左边是true还是false,右边都要继续执行。
&&具有短路效果,符号左边为false时,右边就不执行了。如果符号左边为true,右边则要继续执行。
即:
- 逻辑与&:无论左边真假,右边都要执行。
- 短路与&&:如果左边为真,右边执行。如果左边为假,右边不执行。
- 逻辑或|:无论左边真假,右边都要执行。
- 短路或||:如果左边为假,右边执行。如果左边为真,右边不执行。
三元运算符
格式: | 关系表达式 ? 表达式1: 表达式2; |
执行流程:
- 先计算关系表达式的值
- 值为true,取表达式1的值
- 值为false,取表达式2的值
案例:差莱坞有三个鸡,我们通过称重,知道它们重量分别为29Kg、30Kg、70Kg,我们需要使用程序来获取最重的那个
public static void main(String[] args) { //定义三个变量存储鸡的体重,单位为kg,但现在我们只需要体现数值,分别命名ikun a、ikun b、ikun c int a = 29;//定义变量保存体重 int b = 30;//定义变量保存体重 int c = 70;//定义变量保存体重 //用三元运算符,比较前两个变量,获取最大值。使用临时变量(tempD)进行存储结果 int tempD = (a>b) ? a : b;//比较前两个变量,获取最大值 //用三元运算符,让较大的值和第三个变量c比较,获取最大值 int d = (tempD>c) ? tempD : c;//较大值和第三个变量比较,获取最大值 //或者将上面的两条三元运算符整合为一条,具体如下所示: int result = a > b ? a : b > c ? a > b ? a : b : c; System.out.println(d);//输出结果: System.out.println(result);//第二种输出结果: }
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。