教育行业A股IPO第一股(股票代码003032)
全国咨询/投诉热线:400-618-4000
运算符是对常量或者变量进行操作的符号,Java的运算符有六类:算数运算符、赋值运算符、自增自减运算符、关系运算符、逻辑运算符,三元运算符、用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。下面来具体看一下:1.算数运算符和算术运算符的表达式举例说明:
提升规则:
byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。
整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序:byte,short,char-->int-->long-->float-->double
例如:
byteb1=10;byteb2=20;//byteb3=b1+b2;//该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失精度inti3=b1+b2;//应该使用int接收byteb3=(byte)(b1+b2);//或者将结果强制转换为byte类型-------------------------------intnum1=10;doublenum2=20.0;doublenum3=num1+num2;//使用double接收,因为num1会自动提升为double类型tips:正是由于上述原因,所以在程序开发中我们很少使用byte或者short类型定义整数。也很少会使用char类型定义字符,而使用字符串类型,更不会使用char类型做算术运算。当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
System.out.println("itheima"+666);//输出:itheima666在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。
注意事项:
++和--既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候,++和--无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
最常见的用法:单独使用。
inti=10;i++;//单独使用System.out.println("i:"+i);//i:11intj=10;++j;//单独使用System.out.println("j:"+j);//j:11intx=10;inty=x++;//赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1System.out.println("x:"+x+",y:"+y);//x:11,y:10intm=10;intn=++m;//赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1System.out.println("m:"+m+",m:"+m);//m:11,m:11
在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都
计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式
将不再参与运算。
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
intx=3;inty=4;System.out.println((x++>4)&(y++>5));//两个表达都会运算System.out.println(x);//4System.out.println(y);//5System.out.println((x++>4)&&(y++>5));//左边已经可以确定结果为false,右边不参与运算System.out.println(x);//4System.out.println(y);//47.三元运算符三元运算符语法格式:
关系表达式表达式1:表达式2;解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。举例:inta=10;intb=20;intc=a>ba:b;//判断a>b是否为真,如果为真取a的值,如果为假,取b的值三元运算符案例:①需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。publicclassOperatorTest01{publicstaticvoidmain(String[]args){//1:定义两个变量用于保存老虎的体重,单位为kg,这里仅仅体现数值即可。intweight1=180;intweight2=200;//2:用三元运算符实现老虎体重的判断,体重相同,返回true,否则,返回false。booleanb=weight1==weight2true:false;//3:输出结果System.out.println("b:"+b);}}②需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。
publicclassOperatorTest02{publicstaticvoidmain(String[]args){//1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。intheight1=150;intheight2=210;intheight3=165;//2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。inttempHeight=height1>height2height1:height2;//3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。intmaxHeight=tempHeight>height3tempHeight:height3;//4:输出结果System.out.println("maxHeight:"+maxHeight);}}