java运算符和表达式

Java第三课

今天学的是运算符和表达式;

运算符:用于标明对数据执行某种运算的特定符号;

算数运算符:+、—、*/%++、——;

关系运算符:<>>=<===!=;

逻辑运算符:!&&(&)||(|)^;

位运算符:~&|^<<>>>>>;

赋值运算符:简单赋值(=)、复合算术赋值(+=-=*=/=%=)、复合位运算赋值(&=|=^=>>=<<=>>>=;)

条件运算符:?:。

首先讲的是算术运算符:有单目运算符和双目运算符、三目运算符;

单目运算符有+-/*%(取余);

双目运算符:正、负、++自增、--自减;

三目运算符:?:

Java语言的+可以连接两个字符串;

publicclassTest

{

publicstaticvoidmain(String[]args)

{

inti=9;

intj;

j=++i;//等价于i=i+1;j=i;

System.out.println("i="+i+"\tj="+j);

j=i++;//等价于i=ji=i+1;

System.out.println("i="+i+"\tj="+j);

}

}

可以对char类型的数据可以进行算数计算,而boolean类型数据不可以进行算术计算,因为char类型的数据可以自动转换成整型和float浮点型;'a'

2、关系运算符:用于判断两个操作数的等价性和大小关系得到的类型为布尔类型;为truefalse

classTest2

{

publicstaticvoidmain(String[]args)

{

inta=4;

intb=6;

if(a==b) {

System.out.println("a等于b");

}

if(a!=b)

{

System.out.println("a不等于b");

}

}

}

逻辑运算符:对boolean类型数据进行逻辑上的“与”、“或”、“非”、“异或”等运算,结果仍为boolean类型;、

利用&|作运算时,运算符左右两边的表达式都会被执行,最后两表达式的结果再进行与、或运算;

而利用&&||作逻辑运算时,如果只计算运算符左边的表达式即可确定与、或的结果,则右边的表达式将不会执行。

classTestBooleanOperator

{

publicstaticvoidmain(String[]args)

{

booleanb1,b2;

b2=false;

b1=!b2;

System.out.println("逻辑值:b1="+b1+",b2="+b2);

System.out.println("逻辑与:b1&b2="+(b1&b2));

System.out.println("逻辑或:b1|b2="+(b1|b2));

System.out.println("逻辑异或:b1^b2="+(b1^b2));

intx=3,y=9;

b1=x>y&&x++==y--;

System.out.println("短路与的结果:"+b1+",x="+x+",y="+y);

x=3;

y=9;

b2=x>y&x++==y--;

System.out.println("逻辑与的结果:"+b2+",x="+x+",y="+y);

}

}

位运算:对整形或者字符型数据的二进制进行运算,运行结果为一个整数;`

有“&”运算:参与运算的两个值,如果两个相应位都为1,则该位的结果为1;否则为0

|”运算:参与运算的两个值,如果两个相应位有一个为1,则该位的结果为1;否则为0

"^"运算:参与运算的两个值,如果两个相应位都相同,则该位的结果为0;否则为1

还有左移位,右移位,无符号右移;这些举些例子才能明白;

左移位:int3<<2//3的二进制数向左平移两位,右边补0

00000000000000000000000000000011

向左移两位右边补零;

00000000000000000000000000001100

左移位:int2227>>3//

00000000000000000000100010110011

//向右移两位,原来右侧的奖杯弃掉;

00000000000000000000000100010110

无符号右移位在负数上才能体现不同;无论正负空出来的位补零;

赋值运算符:变量=表达式;

功能:是将运算符“=”右侧表达式的计算赋值给左侧的变量;这个就不用仔细讲了

条件运算符:

<表达式1><表达式2><表达式3>

表达式1必须是boonlean类型的,系统将首先计算表达式1的值,如果该值为ture,则将表达式2的值作为整个表达式的最终结果,否则将表达式3的值作为整个表达式的最终结果;

获取输入对话框的值,这个我也不是很清楚,但基本结构还是知道的,

首先在类的上面加上一个头文件,importjavax.swing.JOptionPane(*);

然后可以将数字的字符串形式转换为整数。Integer.parseInt(s)方法将数字的字符串表示形式s转换为其等效的有符号整数;

例如:intscore

score=Integer.parseInt(JOptionPane.showInputDialog(“请输入百分制成绩:”))

Stringresult=(score>=60)?"及格":“不及格”;

表达式:由若干个操作数和运算符按照约定规则构成的一个序列。

数据类型转换:

如果(byteshort)和int->int;

(byteshortint)long---->long

byteshortintlong)和float--->float;

byteshortintlongfloat)和double--->double;

charint---->int;

强制类型转换:(目标数据类型)变量或表达式

例:(float5/9*(f-32)//该表达式将int型常量5强制转换成5.0fl,在和9整除;

强制类型转换时,由于目标数据类型的取值范围小于待转换数据类型的取值范围,在转换过程中会出现截断,导致高位数据丢失或精度下降。

你可能感兴趣的:(java运算符和表达式)