Java运算符

运算符

一、赋值运算符

=:功能是将右方操作数所含的值赋给左方的操作数。

例如:

int a=100;

例题:使用赋值运算符同时为两个变量赋值。

public static void main(String[] args) {
    int a,b,c;
    a=15;
    c=b=a+4;
    System.out.println("c的值为"+c);
    System.out.println("b的值为"+b);
}

注意:在java中可以把赋值运算符连在一起使用。如:

x=y=z=5;

二、算术运算符

java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(求余),它们都是二元运算符。

java中算术运算符的功能及使用方式如下表所示:

运算符说明实例结果
+12.45f+1527.45
-4.56-0.164.4
*5L*12.45f62.25
/7/23
%去余数12%102
注:在进行除法运算时,0不能最为除数。列如:“int a=5/0;”,系统会抛出异常ArithmeticException .

例如:

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入两个数进行运算");
    double num1=sc.nextDouble();
    double num2=sc.nextDouble();
    System.out.println("两数之和为:"+(num1+num2));
    System.out.println("两数只差为:"+(num1-num2));
    System.out.println("两数的积为:"+(num1*num2));
    System.out.println("两数的商为:"+(num1/num2));
    System.out.println("两数的余数为:"+(num1%num2));

}

运行结果:

请输入两个数进行运算
25
5
两数之和为:30.0
两数只差为:20.0
两数的积为:125.0
两数的商为:5.0
两数的余数为:0.0

三、自增与自减运算符

自增自减是单目运算符。

自增

++a:表示在使用a之前,先让a的值加1.

a++:表示在使用a只后,使a的值加1.

例如:

//假设a=4
b=++a;//先将a的值加1,然后赋值给b。此时a=5,b=5.
b=a++;//先将a的值赋给b,然后a再加1.此时a=5,b=4.

自减

–a:表示在使用a之前,先让a的值减1.

a–:表示在使用a只后,使a的值减1.

例如:

//假设a=4
b=--a;//先将a的值减1,然后赋值给b。此时a=3,b=3.
b=a--;//先将a的值赋给b,然后a再减1.此时a=3,b=4.

案例演示

A:案例演示
请分别计算出a,b,c的值?
int a = 10;
int b = 10;
int c = 10;

a = b++;
c = --a;
b = ++a;
a = c--;

a=9
b=10
c=8

B:案例演示
请分别计算出x,y的值?

int x = 4;
int y = (x++) + (++x) + (x*10);

x=6 , y=70

四、比较运算符

比较运算符属于二元运算符。用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean类型,运算结果为true或false。

比较运算符共有六个,如下表所示:

运算符作用举例操作数据结果
>比较左方是否大于右方‘a’>‘b’整型、浮点型、字符型false
<比较左方是否小于右方156<456整型、浮点型、字符型true
==比较左方是否等于右方‘c’==‘c’基本数据类型、引用类型true
>=比较左方是否大于等于右方479>=426整型、浮点型、字符型true
<=比较左方是否小于等于右方12.45<=45.5整型、浮点型、字符型true
!=比较左方是否不等于右方‘y’!=‘t’基本数据类型、引用类型true

例如:

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入两个数进行比较");
    double num1=sc.nextDouble();
    double num2=sc.nextDouble();
    System.out.println("num1>num2:"+(num1>num2));
    System.out.println("num1<num2:"+(num1<num2));
    System.out.println("num1>=num2:"+(num1>=num2));
    System.out.println("num1<=num2:"+(num1<=num2));
    System.out.println("num1==num2:"+(num1==num2));
    System.out.println("num1!=num2:"+(num1!#=num2));
}

五、逻辑运算符

返回值类型为布尔型的表达式。

逻辑运算符包括&(&&)逻辑与、|(||)逻辑或、!逻辑非。逻辑运算符的操作单元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符。

逻辑与

&&:从左到右,又叫短路与,左边不成立右边不执行。cong

&:从左到右,左边不成立,右边执行。

逻辑非

||:从左到右,又叫短路或,左边成立,右边不执行

|:从左到右,左边成立,右边执行。

逻辑非:

!:从右到左

使用逻辑运算符进行逻辑运算
表达式1表达式2表达式1&&表达式2表达式1||表达式t2!表达式1
truetruetruetruefalse
truefalsefalsetruefalse
falsefalsefalsefalsetrue
falsetruefalsetruetrue

例如:使用不同的比较运算符判断两个整数之间的关系

需求:在项目中创建类,在主方法中创建3个整数,分别记录男生人数、女生人数和总人数,使用逻辑运算符来判断“男生人数大于女生人数并且总人数大于30人"和”男生人数大于女生人数或者总人数大于30人“这两种情况是否存在。

public static void main(String[] args) {
    int boys=15;
    int girls=17;
    int total=boys+girls;
    boolean result1=(boys>girls)&&(total>30);
    boolean result2=(boys>girls)||(total>30);
    System.out.println("男生人数大于女生人数并且总人数大于30人"+result1);
    System.out.println("男生人数大于女生人数或者总人数大于30人"+result2);
}
运行结果:
男生人数大于女生人数并且总人数大于30false
男生人数大于女生人数或者总人数大于30true

六、位运算符(对数据的二进制进行运算)

按位与运算

按位与运算符为’&‘,为双目运算符。

运算法则:

a0011
b0101
结果0001
按位或运算符

按位与运算符为’|‘,为双目运算符。

运算法则:

a0011
b0101
结果0101
按位取反运算符

运算符为’~',为单目运算符。

运算规则:

0修改为1,1修改为0.

按位异或运算符

运算符是’^‘,为双目运算符。

运算规则:

a0101
b0011
结果1001

七、移位操作(按数据的二进制进行运算)

<<:左移 就是将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动,右边移空的部分补0.

>>:右移 如果最高位是0,右移空的位就填入0,如果最高位是1,右移空的位就填入1.

>>>:无符号右移 无论最高位是0还是1,左侧移空的位置就补0.

注意:移位可以实现整数除以或者乘以 2ⁿ的效果。左移是乘,右移是除

例如:

y<<2与y*4的结果相同。

八、三元运算符

三与运算符的使用格式为:

条件式?值1:值2;

运算规则:若条件式的值为true,则表达式取值1,否则取值2。

例如:

boolean b=20>50?true:false;
结果返回为假,取false

三元运算符等价于if……else语句,例如:

boolean b;
if(20>50){
a=true;
}else{
a=false;
}

九、运算符的优先级

java中的表达式就是使用运算符连接起来的符合java规则的式子。运算符的优先级决定了表达式中运算的执行顺序。

优先级从高到低:

增量和减量

算术运算

比较运算

逻辑运算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值