[18/11/14] 运算符

运算符分类

1、算术运算符(a++和++a的区别)

整数运算:

  1. 如果两个操作数有一个为Long, 则结果也为long。    2. 没有long时,结果为int。即使操作数全为short,byte,结果也是int。

浮点运算:

  3. 如果两个操作数有一个为double,则结果为double。    4. 只有两个操作数都是float,则结果才为float。

取模运算:

  1.其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。

代码示例:

/**
区分++a和a++  ;取余
*/
public class Test 
{
    public static void main(String[] args) 
    {  
        //测试取余(即取模) 余数的符号和左边的操作数的符号一致
        System.out.println(7%4);//结果为 3
        System.out.println(-7%4);//结果为 -3 ;
        System.out.println(7%-4);//结果为3


        //测试++a和a++ 结果都是a自增1,但有区别
        int a=2;
        int b=a++;  //a++:是a(值为2)先赋值给b,即b=2,然后a自增1,a=3  即先赋值(给b)后自增
        System.out.println("a= "+a+'\t'+"b= "+b);  // 结果 a= 3  b= 2

        int a1=2;
        int c=++a1;//++a  是先a1先自增1(即a1变成3)后,再把a1的值赋值给c  即先自增后赋值(给c)
        System.out.println("a1= "+a1+'\t'+"c= "+c); //结果 a1=3  c=3

    }
}



2、赋值运算符

特别注意: a*=b+3 相当于a=a*(b+3) 优先级的问题


3、关系运算符
如何判断?代码输出的看是true 还是 false
如:int a=3;
System.out.println(a<5); // 输出为true


4、逻辑运算符

用来操作布尔值

 1 public class Test_1116
 2 {  //逻辑与 与 短路与 的区别
 3     public static void main(String[] args) 
 4     {
 5 
 6         boolean a=1>2 & 2<(3/0); //逻辑与   左边肯定为false 结果也肯定为false ,但对于逻辑与(普通与)他会继续计算后边,而后边
 7                                   //    有错误(0不能为除数),会报异常。
 8         boolean b=1>2 && 2<(3/0); //短路与   左边肯定为false 结果也肯定为false ,但是计算完左边之后不会计算后边,就是后边有错
 9                                   //也没关系,不会报错,因为压根不会计算。短路与:只要一个为 假,【立即】 输出 假 
10         System.out.println(a);
11         System.out.println(b);
12 
13 
14     }
15 }

5、位运算符


如: int c=3<<2 //表示3左移2位,相当于3*2*2=12 (计算最快的一种方法) 3: 0011 ,2个1左移2位变成 1100 (十进制:12)

6、字符串连接符 (+)

 1 public class Test_1114_06
 2   
 3 {
 4     public static void main(String[] args) 
 5     {
 6         String a="3";
 7         int b=4;
 8         int c=5;
 9         char d='a';
10 
11        //字符串连接符 +  何时做加法运算,何时只做单纯连接?两边都是数字做加法运算。两边有字符串的做连接符
12         System.out.println(a+b+c); //从左到右,a为字符串,+是连接符 输出:345 (为字符串)
13         System.out.println(b+c+a); //从左到右,b和c都是数字得到9,然后a为字符串,此时+作为连接符 输出:93(字符串)
14         System.out.println(d+4);  // d是字符(非字符串,用单引号表示) a在Ascll码中为数字97 此时+为加法符,得到101
15     }
16 }

7、条件运算符

如: int a=80;

      String type=a<60? "不及格":“及格”   // 相当于简单if语句,如果a<60 输出冒号前面的字符串 “不及格” ,反之输出冒号后边的字符串“及格”

 

8、运算符的优先级

  【注意】逻辑非>逻辑与>逻辑或  即a|| b&&c 等价于 a || (b&&c)    实际中,为防止错误,可使用括号

 




posted @ 2018-11-14 22:18  ID长安忆  阅读(244)  评论(0)    收藏  举报