您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Java中的运算符1
一、Java中的运算符在Java中,按功能划分主要包含以下运算符。1.算术运算符2.关系运算符3.布尔运算符4.赋值运算符5.字符串连接运算符6.条件运算符7.其他运算符,如:instanceof,new1.1算术运算符算术运算符主要针对的是数值类型变量的运算,byte、short、int、long、float和double。算术运算符:算术运算符描述+相加-相减*相乘/返回整除的值,10/3=3、21/10=2%返回余数10%3=1、21%10=1++自加一,如果++出现在变量的前面,先自加一在进行其他运算如果++出现在变量的后面,先进行其他运算在自加一--自减一,原理同上通过一个例子说明。publicclassOperatorTest01{publicstaticvoidmain(String[]args){//声明两个整型变量inti=11;intj=4;//进行算术运算System.out.println(i+j);System.out.println(i-j);System.out.println(i*j);System.out.println(i/j);System.out.println(i%j);//++运算符在变量的前面或后面变量都会自加一intk=10;k++;System.out.println(k);++k;System.out.println(k);k=10;intl=k++;System.out.println(l);System.out.println(k);k=10;l=++k;System.out.println(l);System.out.println(k);//++运算符在变量的后面,先进行其他运算然后自加一k=10;System.out.println(k++);System.out.println(k);//++运算符在变量的前面,先自加一在进行其他运算k=10;System.out.println(++k);}}1.2关系运算符关系运算符主要是对数值类变量进行比较的,表达式的结果一定是布尔类型的值。关系运算符:关系运算符描述小于=小于等于大于=大于等于==等于!=不等于关系运算的结果一定是一个布尔类型,如:103是true。publicclassOperatorTest02{publicstaticvoidmain(String[]args){inti=10;intj=5;System.out.println(ij);System.out.println(i=j);System.out.println(ij);System.out.println(i=j);System.out.println(i==j);System.out.println(i!=j);booleanb=ij;}}1.3布尔运算符布尔运算符:布尔运算符描述&&短路与||短路或&与|或!非(取反)^异或布尔运算符两边的算子必须都是布尔类型,整个表达式的运算结果也是一个布尔类型。布尔运算:ABA&&BA||BA&BA|BA^B!AtruetruetruetruetruetruefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetruefalsefalsetruefalsetruetruefalsefalsetruefalsetruefalsetruetruetruepublicclassOperatorTest03{publicstaticvoidmain(String[]args){System.out.println(103&&1020);System.out.println(103&1020);System.out.println(103||1020);System.out.println(103|1020);System.out.println(103^1020);System.out.println(!(103));System.out.println(true&&false);System.out.println(false&false);System.out.println(false||true);System.out.println(false|true);System.out.println(false^true);System.out.println(!false);booleanb=103&&1020;System.out.println(b);}}1.3.1&&与&的区别短路与&&,首先判断第一个操作数(左面的算子的结果),如果值为false则不再判断第二个操作数,因为两个操作数只要有一个为假,则结果为假。如果第一个操作数为true,在判断第二个操作数的结果。而逻辑与&,不管第一个操作数是否为false,都会计算第二个操作数。publicclassOperatorTest04{publicstaticvoidmain(String[]args){//逻辑与不管第一个操作数是否为false,都会计算第二个操作数inti=10;intj=20;booleanb=ij&i++=j;System.out.println(b);System.out.println(i);//短路与先判断第一个操作数是否为false,如果第一个操作数结果为false//则不会在计算第二个操作数,所以效率较高i=10;j=20;b=ij&&i++=j;System.out.println(b);System.out.println(i);}}1.3.2||与|的区别逻辑或与短路或的区别和短路与与逻辑与相似,逻辑或不管第一个操作数的结果是否为true都会计算第二个操作数,而短路或只要第一个操作数的结果为true,则不会在计算第二个操作数。所以短路或和短路与一样,效率较高。所以使用率较高并且建议使用。1.4赋值运算符赋值运算符:赋值运算符描述=将值赋给变量+=a+=10;等同于a=a+10;-=a-=10;等同于a=a-10;*=a*=10;等同于a=a*10;/=a/=10;等同于a=a/10;%=a%=10;等同于a=a%10;publicclassOperatorTest05{publicstaticvoidmain(String[]args){inti=10;i+=10;System.out.println(i);i-=10;System.out.println(i);i*=10;System.out.println(i);i/=10;System.out.println(i);i%=10;System.out.println(i);}}1.4.1基本赋值运算符与扩展赋值运算符之间的区别通过下面的例子说明基本赋值运算符和扩展赋值运算符之间的区别,主要涉及的是byte、short和char类型变量的赋值运算,使用扩展赋值运算符可能会损失精度。publicclassOperatorTest06{publicstaticvoidmain(String[]args){//字面值没有超出byte类型的取值范围,直接赋值byteb=10;//编译无法通过,因为byte类型的变量先转换成int类型在进行计算//所以运算结果是int类型,而变量b是byte类型,需要进行强制类型转换//b=b+20;//编译通过,说明扩展赋值运算符没有将byte类型变量b转换成int类型//并没有改变运算结果类型,结果还是byte类型,但是需要注意的是//可能会损失精度b+=20;//编译通过,但是精度损失严重,因为byte类型的上限值是128b+=5000;}}1.5字符串连接运算符“+”符既可以进行算术运算有可以做字符串连接符,那么在什么情况进行算术运算!在什么情况下进行字符串连接!1.做加法运算(+号两边只要都是数值类型,一定是加法运算)2.字符串连接(+号两边任意一端只要是字符串类型,则一定是字符串连接)publicclassOperatorTest07{publicstaticvoidmain(String[]args){Strings=PI=+3.14;System.out.println(s);//PI=3.14inti=10;intj=20;System.out.println(i+j=+i+j);//i+j=1020System.out.println(i+j=+(i+j));//i+j=30System.out.println(i+++j+=+(i+j));//10+20=30}}1.6条件运算符条件运算符是java语言中的三元运算,格式如下:表达式1?表达式2:表达式3表达式1必须是布尔表达式,结果只能是true或false,如果表达式1为true则返回表达式2的值,否则输出表达式3的值。通常情况下,表达式2和表达式3的类型相同,可以将条件运算符运算结果赋值给一个变量,注意:变量的类型要和表达式2和表达式3的类型相同。publicclassOperatorTest08{publicstaticvoidmain(String[]args){inti=105?0:1;System.out.println(i);booleanb=10%4==0?true:false;System.out.println(b);}}二、Java控制语句在Java中控制语句可以分为以下三类。1.控制选择结构语句或分支语句if语句ifelse语句switch(int)2.控制循环结构语句for循环语句while循环语句dowhile循环语句3.改变控制语句顺序break语句continue语句return语句下面对不同类别的控制语句分别进行说明。2.1选择结构语句或分支语句2.1.1if语句单一的if语句只有一个执行分支,语法结构如下。if(布尔表达式){语句块;}当布尔表达式为true时,才会执行if语句内的语句块,当语句块内的语句执行结束后,接着执行if语句后面的语句,顺序向后执行。如果布尔表达式为false,程序执行流程会跳过if语句继续执行后面的语句。如果if语句中的语句块中只有一条语句,可以省略大括号。if(布尔表达式)一条语句;但是为了程序的可读性更好,建议使用大括号将语句括起来。publicclassIfElseTest01{publicstaticvoidmain(String[]args){inta=10;intb=5;if(ab){System.out.println(变量a大于变量b);}if(a%b==0){System.out.println(变量a可以被变量b整除);}if(a-b0)System.out.println(变量a大于变量b);//System.out.println(如果多于一条语句,要加大括号);if(true)System.out.println(这条语句一定会执行);}}2.1.2ifelse语句语法结构有下面几种情况。第一种情况if(布尔表达式){语句块;}else{语句块;}当if布尔表达式为true时,执行if后面的语句块,表达式为false时,执行else后面的语句块。第二种情况if(布尔表达式){语句块;}elseif(布尔表达式){语句块;}elseif(布尔表达式){语句块;}点if表达式为true时,执行if后面的语句块。当表达式为false时,会接着判断else后面的if中的布尔表达式的值是否为true,如果为true,那么执行if后面的语句块,否则继续判断下面else后面的if布尔表达式的值是否为true,如果为true,则执行if后面的语句块,执行结束后继续执行if分支语句后面的语句。如果为false,则直接执行if分支语句后面的语句。第三种情况if(布尔表达式){语句块;}elseif(布尔表达式){语句块;}elseif(布尔表达式){语句块;}else{语
本文标题:Java中的运算符1
链接地址:https://www.777doc.com/doc-3403905 .html