数据变量类型三种(2-变量数据类型)

赋值运算符,= 左侧是变量,右边除了直接的值(类似23这样的,称为常量),也可以是其他更加复杂的表达式。表达式就是变量和这种运算符的组合。

运算符有哪些呢?大概有如下几类:

  1. 数学运算符
  2. 比较运算符
  3. 逻辑运算符
  4. 赋值运算符

赋值运算符,除了 = 外,还有 =,-= ,*=等,和数学运算符结合

数学运算符,常用的 有 - * / % --

%读作 余,用来计算余数的,java是少数支持浮点数计算余数的。对于 / 除法,如果是整数相除,不会保留小数点,也不会四舍五入。 和--称为自加 和 自减,把一个变量的 1或者减一。

数据变量类型三种(2-变量数据类型)(1)

数学运算

对于数学运算,很多情况下不会是一种类型的运算,比如int和double之间的运算,比如圆的半径是int r=10,求面积,那么面积是r*r*3.14,这个肯定是double.在java中,支持数据类型的自动转换。转换的规则如下:

规则1:如果一个操作数为double型,则整个表达式可提升为double型

规则2:满足自动类型转换的条件

两种类型要兼容

数值类型(整型和浮点型)互相兼容

目标类型大于源类型 ,例如:double 型大于 int 型

反之,如果目标类型比源类型小,或者精度低,则需要强转,可能有损失!

转换的语法 (目标类型)表达式

比如

int b = (int)10.2;

double a = 10;

int c = (int)a;

上面的代码片段,留意:10.2这样的数字,有小数点的,系统默认为double类型(没有晓小数点默认为int),转换成int,损失了小数部分;double类型的a转换成c,换了类型,没有任何损失。

当然,不能想当然的以为,强制转换只会损失小数部分,有的时候家都有可能"亏"的不认识了^_^,在介绍下面的片段之前,有必要引入一个新类型,long,是为长整型,他的长度为8个字节,可以表示10的18次方那么大范围的数字。为了和int 作区别,数字后面以字母L作为区别:

数据变量类型三种(2-变量数据类型)(2)

int范围错误

右上角提示了这段代码有错误!大概是int 范围太大。这里的d0后面的数字其实是int,可以理解成一个int赋值给double d0,本来是可以自动转换的,但是后面的值已经超过了int的范围(正负21亿左右),d4如果没有那个L,也会出错!

数据变量类型三种(2-变量数据类型)(3)

右下角的输出有点奇怪。。。

关系运算符

用来比较高低,大小,长短等。常用的有

>,<

==,!=

>=,<=

比较的结果,是boolean(布尔)

数据变量类型三种(2-变量数据类型)(4)

当然,对于多个运算符组合的情况,类似 (3 40%6)>(9/2*3) 这样的,则计算顺序很重要。

目前接触的,最高的优先级:小括号,即( ),最低的优先级:赋值运算符,即=,也包括 =等;其他优先级顺序:算术运算符>关系运算符>逻辑运算符

最后,补充一点,char类型表面上单字符,其实是数字:

数据变量类型三种(2-变量数据类型)(5)

作业:

1:已知一磅等于0.4535924千克,输入千克数,转换成磅数,并输出

2:输入一个5位整数,求他们每一位上数字的和,并输出

3:计算自己的姓名对应的数字(ascii码)和

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页