关闭

java运算符和表达式

标签: javabytestringfloat语言
572人阅读 评论(0) 收藏 举报

                            Java第三课  

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

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

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

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

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

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

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

条件运算符:? : 。

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

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

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

三目运算符:?:

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

public class Test  

{

public static void main(String[] args) 

{

int i = 9;

int j;

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

class Test2

{

public static void main(String[] args)

{

     int a=4;

 int b=6;

 if(a==b) {

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

 

 }

        if(a != b)

{

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

}

}

}

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

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

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

class TestBooleanOperator

{

      public static void main(String[] args)

{

  boolean b1,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));

  int x=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

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

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

  00000000 00000000 00000000 00000011

向左移两位右边补零;

  00000000 00000000 00000000 00001100

左移位:int 2227>>3 //

00000000 00000000 00001000 10110011

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

00000000 00000000 00000001 00010110

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

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

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

条件运算符:

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

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

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

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

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

例如:int score

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

String result=(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整除;

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:529118次
    • 积分:5788
    • 等级:
    • 排名:第4432名
    • 原创:134篇
    • 转载:55篇
    • 译文:6篇
    • 评论:104条
    最新评论
    我的新浪微博