Day06:运算符详解

运算符

  • 算术运算符:+,-,*,/,%(取余;也叫模运算),++(自增),--(自减)...........
  1. 二次运算符+,-,*,/
int a=10;int b=20;int c=50;int d=100;System.out.println(a+b); //=30System.out.println(a*c); //=500System.out.println(a/d); //=0;值明显错误 , 因为int运算后都是取整,需要加上强制转换符System.out.println(a/(double)d); //0.1;正确不同类型间的二次运算
long a=10000000000000L;int b=10000;short c=100;byte d=10;System.out.println(a*b);//值为long型;整数型运算中有Long型,结果也为long型System.out.println(b*c);//=100_0000;int型以下运算结果均为int型
  1. 取余 %
int a=1;int b=4;System.out.println(a%b);//=1;即:1/4=0.........1
  1. 关系运算符 > ,<,==,!=
int a=10;int b=20;System.out.println(a>b);//falseSystem.out.println(a<b);//trueSystem.out.println(a==b);//falseSystem.out.println(a!=b);//true//关系运算符返回值只有正确/错误 , 通常与if一起使用
  1. 一元运算符 ++ , --
int a=10;int b=a++;//首先要清楚a++是什么意思?a++/++a=a+1 , 但是++在a的后面表示先赋值在执行自增(自减),而++在a的前面则需要先自增(自减)再赋值int c=++a;System.out.println(a);//=12;a再两次变量中自增两次,a=a+1+1=12System.out.println(b);//=10;a++代表先赋值b,再执行自增 , 则b=aSystem.out.println(c);//=12;++a代表先自增,再赋值c,则c=a+1+1=12
  1. 幂运算
在Java中没有幂运算符号^,我们可以通过Math数学工具中找到pow代表幂运算,pow属于double类
double pow=Math.pow(2,3);System.out.println(pow);//=2^3=8
  1. 逻辑运算符 &&(与),||(或),?。ǚ?取反)
【Day06:运算符详解】boolean a=true;boolean b=false;System.out.println(a&&b);//=false;与:同真为真,有假则假System.out.println("(a&&b):"+(a&&b));//=(a&&b):a&&b;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接System.out.println(a||b);//=true;或:有真则真 , 同假则假System.out.println("(a||b):"+(a||b));//=(a||b):true;输出时“字符串”在变量运算前 , 变量运算值也变成字符串进行拼接System.out.println(!(a&&b));//=true;取反:真则是假,假则是真System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接
  1. 短路运算
int a=10;boolea b=(a<9)&&(a++>10);//什么叫短路运算?(a<9)是false,而它与(a++>10)是“与”的关系,此时一个为假,整体为假,电脑节约资源,不会再进行(a++>10)的运算System.out.println(b);//=falseSystem.out.println(a);//=10int c=10;boolea d=(c<11)&&(c++>10);//因为(c<11)为true,则(a++>10)会被运算System.out.println(d);//=falseSystem.out.println(c);//=11
  1. 位运算(针对二进制)&,|,^(取异),~(取反),>>(右移),<<(左移)
/*二进制A=0010 0011B=1110 0101A&B=0010 0001&:全一为一,有零为零(结合逻辑运算符,同真为真,有假则假)A|B=1110 0111|:有一则一,全零为零(结合逻辑运算符,有真则真,同假则假)A^B=1110 0110^:相同为零,相异为一~B =0001 1010~:取相反的数二进制十进制0000 000000000 001020000 001130000 010040000 100080001 000016面试题:如何快速计算2^4的值?思路:利用二进制;16=2*2*2*2观察上方十进制2和16对应二进制的值,发现二进制的1向左移动三次得到16;在Java语言中,位运算符<<是左移的意思,每移动一次,等于乘一次2,同样,>>代表右移,每移动一次 , 等于除一次2答案:快速计算2^4的表达式为 System.out.println(2<<3);*/
  1. 扩展运算符 +=,-=,*= 。/=
int a=10;int b=20;a+=b;//a+=b含义是a=a+ba-=b;//a-=b含义是a=a-bSystem.out.println(a+=b);//30System.out.println(a-=b);//10System.out.println(""+a+b);//1020;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接System.out.println("(a+=b):"+(a+=b));//(a+=b):30;输出时“字符串”在变量运算前 , 变量运算值也变成字符串进行拼接,但这里(a+=b)有括号,那么括号内的值会运算后作为字符串进行拼接(添加括号,括号内运算有优先级)System.out.println(a-=b+"");//10;输出时“字符串”在变量运算后 , 变量运算正常进行
  1. 三元运算符 ?:
/*x?y:z 假如x为真,则返回y值 , 否则为zint score=75;String state=x<60?"不及格":"及格";System.out.println(state);//及格*/

推荐阅读