hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

聊一聊Java中的种种运算符

2019-11-18杂谈搜奇网30°c
A+ A-

盘算机之所以叫“盘算机”,其最基本用处之一就是运算,对应方才打仗Java的小伙伴而言,熟习并控制Java中的种种运算符及其在表达式中的运算优先级是十分必要的。

算术运算

算术运算重要用来处置惩罚数学中的加、减、乘、除四则运算。是最简朴、最经常运用的运算符。

1. 除与取模:数据做除法操纵时,/ 是求商, % 是取余数。两个整数相除取得的效果是商的整数部份

2. 自增与自减:在原数据的基础上实行加1或减1的操纵。

  • 零丁运用:放在操纵数据的前面和背面效果是一样的,如s++和++s效果一样。
  • 介入操纵:标记在操纵数的前面示意先自增或自减,再介入操纵。标记在操纵数的背面示意先介入操纵,后自增或自减
//泉源:民众号【时间与字节】
package BaseCode;
public class code1_1 {
    public static void main(String[] args) {
        int f=7;
        int n=2;
        System.out.printf("整数相除:f/n=%d\n",f/n);
        System.out.printf("小数相除:f/n=%f\n",f/(float)n);
        //两个整数相除,只能取得效果的整数部份,不是四舍五入。
        //如想效果为小数,需将个中一个操纵数转换为浮点数。

        System.out.println("取模(求余数):f%n="+f%n);

        //自增与自减:零丁运用
        f--;
        ++n;
        System.out.println("f的值:"+f+",  n的值:"+n);

        //自增与自减:介入操纵
        int xf=++f;//先自加,再赋值
        int yn=n--;//先赋值,再自减

        System.out.println("f的值:"+f+",  xf的值:"+xf);
        System.out.println("n的值:"+n+",  yn的值:"+yn); 

        //++10  这类写法是毛病的,常量不能自增或自减
    }
}

运转效果

整数相除:f/n=3
小数相除:f/n=3.500000
取模(求余数):f%n=1
f的值:6,  n的值:3
f的值:7,  xf的值:7
n的值:2,  yn的值:3

关联运算

用于对两个变量或数值举行比较,无论如何运算,终究效果只能为true(真)或false(假),切勿将==误写为赋值号=。

逻辑运算

用于对布尔型数据举行操纵,其效果仍为布尔型。

短路运算:以&和&&为例, | 和 || 是一样的原理。

&和&&都示意与操纵,当运算双方都为true时,其效果才为true。因而,当左侧为false时,即可肯定效果为false,右边是不是运算已对效果没有影响了。

  • &:不管左侧为true或false,右边都要运算
  • &&:当左侧为false,右边不在举行运算
//泉源:民众号【时间与字节】
package BaseCode;
public class code1_2 {
    public static void main(String[] args) {
        int f = 7; //变量f初始化为7
        int n = 7; //变量n初始化为7
        //【短路与】运算
        boolean bf = (f<5) && (f++<9);
        //【与】运算
        boolean bn = (n<5) & (n++<9);
        System.out.println("短路运算的效果为:" + bf);
        System.out.println("f的效果为:" + f);
        System.out.println("未短路运算的效果为:" + bn);
        System.out.println("n的效果为:" + n); //n的值变了
    }
}

运转效果

短路运算的效果为:false
f的效果为:7
未短路运算的效果为:false
n的效果为:8

剖析:

bf为短路与运算的效果,f<5为假,算式右边未盘算,所以f的值没有变。

bn是运算的效果,全部算式都需盘算,所以n++被实行了,n自加1。

赋值运算

将常量、变量或是表达式的值赋给一个变量,赋值运算符重假如=(等号)。

扩大赋值运算符(+=,-+,*=,/=,%=):都是将变量与右边操纵数举行算术运算,再将效果赋给变量。如:f+=5等同于f=f+5

1. 一条语句可对多个变量赋值。

    int a,b,c;
    a=b=c=10;   //正确写法

    int i=j=k=10; //写法毛病

2. 扩大赋值运算隐含了强迫范例转换,看下图。

 

 上图的代码中,n+=x未报错,但n=n+x报错了。

两个short型相加,效果应为int型。+=赋值符隐含了强迫范例转换,所以没有错。

正确的说,n+=x 应当等同于

n=(n的数据范例)(n+x)

别的运算

位运算:按二进制位举行与、或、非和异或的运算。

移位运算:对二进制位举行左移和右移的操纵。

  • <<左移:左侧最高位抛弃,右边补0

  • >>右移:右移一名,左侧空位依据原数的标记补0或1(正数补0,负数补1)

  • >>>无标记右移:右移一名,左侧空位补0

//泉源:民众号【时间与字节】
package BaseCode;
public class code1_4 {
    public static void main(String[] args) {
        byte a=6;  //  6对应二进制:00000110
        byte b=11; // 11对应二进制:00001011
        System.out.println("按位与运算:a&b = "+ (a&b));//效果为:2

        System.out.println("左移一名:b<<1 = "+ (b<<1));//效果为:2
    }
}
//  按位与运算:6%11          左移一名:11<<1                    
//     00000110                00001011
//  &  00001011                        <<1
//  ----------------     ----------------------
//     00000010                00010110
//  对应数值为:2             对应数值为:22

运转效果

按位与运算:a&b = 2
左移一名:b<<1 = 22

前提运算:比较表达式?表达式1:表达式2

  • 实行划定规矩:先盘算比较表达式的值,假如为true,效果为表达式1;不然,效果为表达式2。

 int x = 59;
 String s = (x>60) ? "合格" : "不合格" ;
 System.out.print(s);//效果s的值为:不合格

优先级

一个表达式中涌现多个运算符,就有相似“先乘除后加减“如许的前后题目,通常情况下:

  1. 优先级上下大抵递次为:自增自减>算术运算>比较运算>逻辑运算>赋值运算;
  2. 假如两个运算优先级雷同,则左侧的表达式要比右边的表达式先处置惩罚;
  3. 运用小括号吧,小括号能提拔算式的优先级,并且会让全部表达式逻辑构造越发清楚。如:(1+3)+(3+2)*2;

详细可参看下表,具有高优先级的运算符在表的上面,较低优先级在表的下面。

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
聊一聊Java中的种种运算符

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282318.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>