Java的算数运算符、关系运算符、逻辑运算符、位运算符

本文详细介绍了JAVA中的各种运算符,包括算数运算符(如+、-、*、/、%)、赋值运算符(=、+=、-=、*=、/=、%=)、关系运算符(==、!=、>、<、>=、<=)、逻辑运算符(&&、||、!、^、&、|)以及位运算符(&、|、^、~、<<、>>、>>>),并探讨了运算符的优先级和使用规则,还提供了多个示例来帮助理解运算符的工作原理和差异。

JAVA的运算符,分为四类:
算数运算符、关系运算符、逻辑运算符、位运算符
章节一 算数运算符(7)

加(+)、减(-)、乘 (*)、除 (/)、 取余(%)、 加加(++)、 减减(–)、

章节二 赋值运算符

赋值(=)、加等(+=)、减等(-=)、乘等(*=)、除等(/=),取余等(%=)

章节三 关系运算符(6)

相等(==)、不相等 (!=)、 大于(>)、 大于等于(>=)、 小于(<) 、小于等于(<=)

章节四 条件运算符(1)

三元运算符
条件 ? 表达式1 : 表达式2
当条件成立时,执行表达式1,不成立则执行表达式2

章节五 逻辑运算符(6)

短路与(&&)、短路或(||)、取否(!)、逻辑异或(^) 、逻辑与(&)、 逻辑或(|)

章节六 位运算符(7)

位与(&),位或(|),位非(~),位异或(^),右移(>>),左移(<<),无符号右移运算符[0填充的右移] (>>>)

章节七 Java运算符优先级


第一章节 算数运算符

算数运算符操作数必须是数值类型。分为一元运算符和二元运算符;
一元运算符:只有一个操作数;
二元运算符:有两个操作数,运算符在两个操作数之间。

一元运算符:正‘+’,负‘-’,自加‘++’,自减–‘这四个。
①”++“和”–“运算符,只允许用于数值类型的变量,不允许用于表达式中;
"++"和”–“可以用于数值变量之前或者之后;

两处使用差别:

(1)”++“和”–“用于数值变量之前,在赋值操作中,先对被”++“或”–“操作变量值先加1或者先减1,然后在进行其他的操作;
例如++i是先将i的值加1后,然后在进行其它的操作

(2)"++"和”–“用于数值变量之后,在赋值操作中,先用被”++“或”–“的操作变量值进行其他的操作,然后在对其值加1或者减1。
例如i++是先进行其它的操作,然后在将i的值加1。

案例1:

public class Operator {
   
   
public static void main(String[] args) {
   
   
int a = 5;
int b,c,d,f,g,h;
b = +a; //正值
System.out.println("b="+b+",a="+a);
c = -a; //负值
System.out.println("c="+c+",a="+a);
int i = 2;
d = ++i; //先i=i+1;再d=l
System.out.println("d="+d+",i="+i);
int m = 3;
f = m++;//先f=m;再m=m+1
System.out.println("f="+f+",m="+m);
int n = 4;
g = --n;//先n=n-1;再g=n
System.out.println("g="+g+",n="+n);
int o = 6;
h = o--;//先h=o;再o=o-1
System.out.println("h="+h+",o="+o);
}
}

结果:
上代码,输出结果为:

b=5,a=5
c=-5,a=5
d=3,i=3
f=3,m=4
g=3,n=3
h=6,o=5

注:一元运算符和前后的操作数之间有空格,可能在有些编译器下编译时会出错。

加’+’,减’-‘,乘’*’,除’/’,求余’%’
(1)在算数运算符中,”+“,”-“,”“,”/“完成加减乘除四则运算,遵守数学运算。有括号先算括号里的内容,没有括号的时候先算乘除再算加减。
(2)%是求两个操作数相除后的余数。
运算规则和数学运算基本相同,在算数运算中,计算时按照从左向右的顺序计算,乘除和求余优先于加减,不同的是,程序中的乘运算符不可省略,在数学中可写为”y=2x“而程序中必须写为”y=2
x“。

知识扩展:java中/与%的区别
/ 取商数 % 取余数

/ 读作除,%读作取余(也叫取模)。/得到的是除法运算的整数,%得到的是除法运算的商(整数)。 例如:7除3商2余1,所以7/3=2,7%3=1。

注意:
(1) 取余(取模)有个规律就是:左边小于右边,结果为左边,左边大于右边,看余数。
(2)两个整数相除结果还是整数,向下取整。只要相除中有一个小数,结果带小数。
(3)目前%(取模)常见使用场景为奇偶数的判断: x%2 ,0为偶数,1为奇数。
(4)/10 就是删除数字的个位数,%10就是返回数字的个位数

案例2:

        System.out.println(3/5)  = 0;
        System.out.println(6/5)  = 1;
        System.out.println(11/5)  = 2;
      结果等于得到的整数(商的整数)

      结果等于余数(剩余多少
        System.out.println(2%5) = 2;
        System.out.println(7%8) = 7;
        System.out.println(6%8) = 6;
       

类型转换
当二元运算的两个操作数的数据类型不同时,运算结果的数据类型和参与运算的操作数的数据类型中精度较高(或位数较长)一致。

案例2:

        int a = 5;
        double b = 4.53;//或者3.53d
        float c = 2.7f;
        int d = 1;
        System.out.println("int /int :a/d="+a/d);
        System.out.println("double/int:b/a="+b/a);
        System.out.println("float/int:c/a="+c/a);

		结果:
		int /int :a/d=5
		double
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值