Java运算符和表达式

表达式及分类

表达式:由运算符和操作数组成的符合Java语法的式子

操作数可以是变量、常数或者函数

运算时使用变量此时的值运算

多种数据类型做运算时可能结果的类型可能发生改变

分类:

由不同的运算符构成的表达式有各自的名字,如算是表达式,逻辑表达式等

其他:

scanner类可以用来接受输入数据:

需要引入一个Scanner的包

import java.util.Scanner;
Scanner sc1 = new Scanner();//创建一个Scanner实例
int num = sc.next();//读取输入内容并且赋值进num变量

运算符及优先级

Java在执行运算任务时仍是将变量读取至内存并交由CPU进行处理,处理后转存至内存并将数据进行存储输出

分类

赋值运算符:“ = ”

赋值时需要保证代码可读性,单独声明变量并赋值

表示将右边的量赋值给左边的量(右结合),如:

int a = 100;//将100值赋值给int类型变量a
int b = a;//将a的值赋值给b

算术运算符:“ + ”、“ - ”、“ * ”、“ / ”等

二元运算符:

“ + ” 加法运算符:两个数据进行加法运算,如:

int num1 = 1;
int num2 = 2;
int num3 = num1 + num2;//将两个空间内的数值加载进内存并访入cpu中进行计算,并将结果存入num3的内存空间中

*如果其中一方为字符串(String)则结果也必定为字符串(String),如:

int num = 100;
System.out.println("the number is :" + num);//输出为字符串类型的the number is :100(字符串类型)

“ - ” 减法运算符:两个数进行减法运算,如:

int num1 = 3;
int num2 = 1;
int num3 = num1 - num2;

“ * ” 乘法运算符:将两个操作数进行乘法运算,规则与上述运算符类似

“ / ” 除法运算符:若操作数中均为整数类型,则结果为整数,若想要结果为浮点数类型,则需在两个操作数中声明一个为浮点数类型

“ % ” 模运算符:操作数对另一个数取余操作(即一个数减去这个数对另一个数的商),如:

int num1 = 10;
int num2 = 5;
int num3 = num1 % num2;//读作num1对num2取模
一元运算符:“ - ”(负号、“ ++ ”、“ – ”

自增运算符:“ ++ ”

对操作数进行加一操作并将其赋值给原变量,分在变量前和变量后,若++在变量前,则将在本语句开始前进行自增操作,若在后面,则在本句运行完毕后再进行自增操作,如:

int num = 1;
System.out.println(num++);//这里输出的为1,在打印命令执行完后才进行加运算
int num = 1;
System.out.println(++num);//这里输出的为2,在打印命令前进行加运算

自减运算符:“ – ”

与自增同理,也分前和后

int num = 1;
System.out.println(--num);//输出为0
System.out.println(num--);//输出仍为0

与递增运算同理

复合运算符,如:“ += ”、“ -= ”、“ *= ”、“ /= ”、“ %= ”

格式为 操作数 操作符 操作数

兼顾运算和赋值,将运算后的数重新赋值给运算前的变量,可以避免太多重复代码,如:

int num = 1;
num += 1;//等效于num = num + 1,其他同理
三目运算符

用于简单的条件判断赋值,可以节省很多代码

其基本规则为:条件表达式 ? 值一 : 值二

条件成立返回值一,条件不成立返回值二,如:

int num1 = 1;int num2 = 2;int max;
max = num1 > num2 ? num1 : num2;//这里意思为max的赋值判断为是否满足num1>num2,若成立将num1赋值给max,反之将num2赋值给max

关系运算符

如:“ > ”、“ < ”、“ == ”、“ != ”等

关系表达式的计算结果为逻辑值(boolean类型)

如果表达式成立则返回值为true,反之为false

大于小于符号需要数字才能比大小,如:

int num1 = 1;int num2 = 2;
System.out.println(num1 < num2);//结果为true

等于和不等于两边的类型需要相同才能进行逻辑运算,如:

  • 字符串的相等判断不能直接用等号,需要调用equal函数判断
int num1 = 1;int num2 = 1;
System.out.println(num1 == num2);//结果为true

String str1 = "你好";String str2 = "您好";
System.out.println(str1.equal(str2));//结果为true

逻辑运算符

包含“&&”(且)、“ || ”(或)、“ !”(非)

详细规则可以参考真值表

运算操作数为逻辑值(布尔值)得到的数也为逻辑值,常用关系表达式来得到逻辑值,逻辑运算符两端可能包含多个关系表达式和算术表达式,如:

int num1 = 1;int num2 = 2;
System.out.println(num1 > num2 || num1 < num2);//结果为true,因为其为或运算两边只要有一个为true则结果为true

位运算符

“ & ”和“ | ”或“ >> ”、“ >>> ”等对数字的具体内存位上的状态进行判断

优先级

指各种不同的运算符具有不同的先后运算顺序,顺序如下:

()可以改变运算优先顺序,一般最里层的括号先进行计算,括号内的计算顺序仍遵循上述计算顺序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值