• JAVA复合语句


    Java中的复合运算符,比如 += 、-= 等,一般来说,a = a + b 与 a += b 是等价的,但实际上从严格意义上来说,这二者之间并不等价,还是有一定区别的。
    比如:
    public class TestCompositeOperator {
    public static void main(String[] args) {
    short a = 5;
    short b = 10;
    a = a + b; //此处会报错
    System.out.println(a);
    }

    }

    因为在Java中,凡是小于int的整型在参与运算的时候,都会被当做int类型来处理,即a = a + b;此处的右边的a和b在参与运算的过程中,a和b都被当成int类型来处理,运算结果当然是int类型,要把int类型赋给short类型,必须强制转换,否则就会报错;
    但是:
    public class TestCompositeOperator {
    public static void main(String[] args) {
    short a = 5;
    short b = 10;
    a += b; //此处正确
    System.out.println(a);
    }

    }

    因为在Java中,像+=这样的复合运算符,实际上包含了强制类型转换,即以上代码a += b;是和 a = (short)(a + b);等价。
    所以在实际使用中,一定要牢记基本的运算准则,否则就很容易出一些莫名其妙的错误。

  • 相关阅读:
    hdu1238 Substrings
    CCF试题:高速公路(Targin)
    hdu 1269 迷宫城堡(Targin算法)
    hdu 1253 胜利大逃亡
    NYOJ 55 懒省事的小明
    HDU 1024 Max Sum Plus Plus
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1257 最少拦截系统
    HDU 1069 Monkey and Banana
    HDU 1104 Remainder
  • 原文地址:https://www.cnblogs.com/yangchengyu314/p/5215757.html
Copyright © 2020-2023  润新知