黑马程序员—赋值和比较运算符、逻辑运算符

来源:互联网 发布:centos cp 复制文件夹 编辑:程序博客网 时间:2024/05/16 17:22

------- android培训、java培训、期待与您交流! ----------

class c//  赋值和比较运算符、逻辑运算符

{ public static void main(String[] args)  {  System.out.println("Hello World!");  

    //赋值运算符开始    /*    赋值运算符开始 包括 =、+=、-=、*=、/=、%=    */  int   x=3;     //x+=4;  //相当于x=x+4 即是将左右两边的和赋予了x 同理其它如下:

  //x-=4;    //x*=4;    //x/=4;    x%=4;  System.out.println(x);

  /*  x=x+4=7,  x=x-4=-1,  x=x*4=12  x=x/4=0  x=x%4=3  */

 

  short s=2;   //即是赋值运算 s=2     s+=2;  //相当于s=s+2  面试考点s+=2与s=s+2的区别        /*      s=s+2 这样写是不对的 因为s+=2会做自动转换 而s=s+2 =中的s是short     双字节数值型数据而2是四个字节的,如果将s+2的值赋予s会损失精度,所     以需要向下面那样强制提升     */     s=(short)(s+2);   //需要对s进行强制转换     int a,b,c;         a=b=c=5;

  //比较运算符开始  /*  比较运算符,结果只有true和false两种。 ==、!=(不等于)、<=、instanceof(  检查是否是对象的类)  */  System.out.println(3==4);//结果为false        System.out.println(3!=4);//结果为true  System.out.println("Hello World!" instanceof String); //结果为true  

//逻辑运算符开始

/*  (一)& (与):

      1:无论左边真假 右边都运算(有一个假就是假)      2:只有两者均为true 结果才是true

   同真则真

  */  int m=4;  // m>3&m<5;  System.out.println(m>3&m<5);//结果为true  System.out.println(m>3&m<5);//结果为true  System.out.println(m>5&m<6);//结果是false   System.out.println(m>6&m<2);//结果是false  System.out.println(m<7&m>8);//结果是false 由此行代码可知右边也参与了运算

  /*  (二)&& (双与):

      1:当左边为false时 右边不运算 直接false            2:当左边为true时,右边才运算

  */  int y=3;  System.out.println(y>3&&y<8);//结果为false 当左边为false时 右边不运算  System.out.println(y>1&&y<8);/*结果为true  左真右真 左真所以右边会继续                                运算*/  System.out.println(y>2&&y<0);//结果为false 左真右假 右边会继续运算

  /*  注意&与&&的区别 &无论左右真假 右边都会运算 &&是有选择性的运算左假直接  假,左真再运算 效率比&稍微高点  */

 

  /*  (三)| (或"shift+\"):

   细节:(1):左边为真,即为真         (2):左边为假,继续算右边,右边为真则为真         (3):左边为假,继续算右边,右边为假即为假            同假则假

   总结:只要表达式含有true 结果就是true(两边都运算)         只有表达式两边均为false 结果才为false

     */  int k=2;  System.out.println(k>1|k<3);//结果为true  System.out.println(k>3|k<3);//结果为true  System.out.println(k>3|k<1);//结果为false

  /*  (四)|| (双或):

   1:当左边为true时,右边不运算 直接true   2:当左边为false时,右边才运算  */  int p=2;  System.out.println(p>1||p<0);//结果为true  当左边为true时 右边不运算  System.out.println(p>3||p<1);//结果为false 左边为假右边继续 false  System.out.println(p>3||p<8);//结果为true  左边为假右边继续 true

  /*  注意与|的区别 | 两边都参与运算(同假则假) ||是有选择性的运算,左真直接  真,左假再运算  */

          /*  (五)^(异或"shift+6"):   1:两边相同(均为true或均为false)结果为false      2:两边不同结果为true。     */  int z=2;  System.out.println(z>1^z<3);//两边均为真 结果为false  System.out.println(z>3^z<3);//左假又真   结果为true  System.out.println(z<3^z<1);//左真右假   结果为true  System.out.println(z>3^z<1);//两边均为假 结果为false

  /*  (六):! 非        !true=false !!true=true  */  }}

 



 

原创粉丝点击