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=j;i=i+1;
System.out.println("i="+i+"\tj="+j);
}
}
可以对char类型的数据可以进行算数计算,而boolean类型数据不可以进行算术计算,因为char类型的数据可以自动转换成整型和float浮点型;'a'
2、关系运算符:用于判断两个操作数的等价性和大小关系得到的类型为布尔类型;为true和false;
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)?"及格":“不及格”;
表达式:由若干个操作数和运算符按照约定规则构成的一个序列。
数据类型转换:
如果(byte或short)和int-—>int;
(byte或short或int)和long---->long
(byte或short或int或long)和float--->float;
(byte或short或int或long或float)和double--->double;
char和int---->int;
强制类型转换:(目标数据类型)变量或表达式
例:(float)5/9*(f-32)//该表达式将int型常量5强制转换成5.0fl,在和9整除;
强制类型转换时,由于目标数据类型的取值范围小于待转换数据类型的取值范围,在转换过程中会出现截断,导致高位数据丢失或精度下降。