小白学变量(2)
数据变量的类型转换
在byte、short、int(最常用)、long、float、double、char,
八大基本变量中,除了boolean类型以外,其他的七大类型都可以相互转换;
byte < short (char) < int < long < float < double
小类型与大类型混合运算时,会默认转换成大类型
例如: byte a =100;
int i=100;
(1) 大类型接收小类型的的时候,会默认执行大类型
int b=a+i;
System.out.println(b);此时的结果运算是200;
(2) 小类型接收大类型的时候,需要强制类型转换;
例如: byte c=127;
c为byte类型的值;
数字1默认为int类型;
System.out.println(c+1);
此时输出的C默认为是int类型的值,结果运算是128;
(3) 强制类型转换有可能会出现溢出问题,导致精度损失;
例如: byte e=(byte)(c+1);
System.out.println(e);
此时的输出C为强制转换成的byte类型的值,
运行结果超出了Byte 的取值范围,运算结果是-128;
常见的运算类型有:
算数运算符, 复合运算符,逻辑运算符、三目(三元)运算符
算数运算符常见的有:
+、-、*、/、%、++、--、
运算千位、百位、十位、个位、
int num=7788;
千位: int qianWei=num /1000; (取值) 7
百位: int baiWei=num /100 %10; (取值) 7
十位 int shiWei=num /10 %10; (取值) 8
个位 int geWei=num %10; (取值) 8
(@) ++:; - -:
int i =1;
i++;(运算结果为1,当输出完代码以后结果为2);
++i;(执行结果为3,代码结束后记过为3);
i--,(执行结果为3,代码结束以后i为2);
--i,(执行结果为1,代码结束后i为1);
复合运算符常见的有:
+=、-=、*=、/=、%=
例如:
int i=1
int i+=1;int i=i+1;
int i-=1;int i=i-1;
int i*=1;int i=i*1;
int i/=1;int i=i/1;
int i%=1;int i=i%1;
逻辑运算符:
>、>=、<、<=、==、!=、&&、||、!、
&&(两边为ture,则为真,一边为假则为假,左边为假就为假)
++x==y&&++x!=y
当 ++x==y为真,运算短路与右边的++x!=y,如果它为真,则整个句式就为真
当++x==y为假时, &&++x!=y就会直接结束不输出。
总结: 两真则真,一假则假;
注意: 短路与的句式先从左向右输出,先算左边的数值
数值正确则执行结果赋值给有边的
|| (短路或) 与短路与方式一样,
唯一不同是,两方运算中一边正确则为ture,如果左边为false
那么继续运行右边,如果右边也是false,则句式结果就是false。
三目(三元)运算符
判断?表达式1:表达式2
int a=1System.out.println(a==1?“表达式为真”:“表达式为假”);
三变量变换法
int a = 2
int b=1
System.out.println("变换前"+a+"变换后"+b);(2,1)
int temp=a;
a=b;
b=temp;
System.out.println("变换后"+a+"变换后"+b);(2,2)