您的位置:首页 > 职场人生

黑马程序员—Java语言基础(运算符、代码示例)

2014-04-13 15:12 671 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

运算符:

      常见的运算符有:

•     算术运算符

•     赋值运算符

•     比较运算符(关系运算符)

•     逻辑运算符

•     位运算符

•     三元运算符

   


算术运算符的注意问题

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

例如:int x=3510;x=x/1000*1000;  x的结果是?

“+”除字符串相加功能外,还能把非字符串转换成字符串,

赋值运算符

•     符号:=

•     扩展赋值运算符: +=, -=, *=, /=, %=

 

比较运算符:



l  注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。

l  注2:比较运算符“==”不能误写成“=”


逻辑运算符:





l  逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 &x<6


l  “&”和“&&”的区别:

•   单&时,左边无论真假,右边都进行运算;

•   双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

      “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

l  异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

 

位运算符:





•     位运算是直接对二进制进行运算



三元运算符:

l  格式

•   (条件表达式)?表达式1:表达式2;

•   如果条件为true,运算后的结果是表达式1;

•   如果条件为false,运算后的结果是表达式2;

l  示例:

•   获取两个数中大数。

•   int x=3,y=4,z;

•   z =(x>y)?x:y;//z变量存储的就是两个数的大数。

下面是代码示例和注释:

public class Test

{

      publicstatic void main(String[] args)

      {

           //取模

           int r= 10 % 3;

           System.out.println(r);

 

           //自增

           int i= 10;

 

           //i++;先取 i
值,再运算(i = i + 1)

           int j= i++;

           System.out.println(j+","+i);

           j = i;

           System.out.println(j+","+i);

          

           int m= 100;

           //++m;先运算(m = m + 1),后取值

           int n= ++m;

           System.out.println(n);

 

           //+: 字符串相加

           Stringstr = "abc";

           Stringstr2 = "def";

           Stringstr3 = str + str2;//abcdef

           System.out.println(str3);

 

           //如果对负数取模,可以把模数的负号忽略不计

           System.out.println(10% -3);//结果还是1

           //如果被模数是负数,则先对其绝对值进行取模运算,再在结果前加一个负号

           System.out.println(-10% 3);//结果是-1

 

           System.out.println(-10% -3);//结果也是-1

          

           //整数之间做除法时,只保留整数部分而舍弃小数部分

           int x= 3510;

           x = x/ 1000 * 1000;

           System.out.println(x);//结果为3000

 

           // + 除字符串相加功能外,还能把非字符串转换成字符串

           Stringstr4 = "1";

           System.out.println(str4+ 100);//结果为1100

 

           //扩展赋值运算符: +=, -=, *=, /=, %=

           //inty = x + 1000;

           x +=1000;//x = x + 1000;

           System.out.println(x);//结果为4000

 

           System.out.println(x>= 1000);//结果为true

 

           //逻辑运算符

           int a= 10;

           int b= 20;

 

           //& 与运算符,当且仅当两边都为真时,表达式的结果才为true

           System.out.println(a> 5 & b < 30);//结果为true

           System.out.println(a> 15 & b < 30);//结果为false

           System.out.println(a> 5 & b < 19);//结果为false

 

           // | 或运算符,当且仅当两边都为假时,表达式的结果为 false,此外结果都为true

           System.out.println(a> 5 | b < 30);//结果为true

           System.out.println(a> 15 | b < 3);//结果为false

           System.out.println(a> 5 | b < 19);//结果为true

 

           // ^ 异或运算符,当且仅当两边的表达式的结果不同时为true,两边结果相同则为false

           System.out.println(a> 5 ^ b < 30);//结果为false

           System.out.println(a> 15 ^ b < 30);//结果为true

           System.out.println(a> 5 ^ b < 19);//结果为true

 

           // ! 非运算符

           System.out.println(!(a> 5));//结果为false

 

           //&& 短路与 ||
短路或短路逻辑运算符: 若短路逻辑运算符前的表达式已经可以确定整个表达式的值

           //则不再判断短路运算符后面的表达式

           System.out.println(a> 15 && (10 / 0 == 1));

 

           //位运算符

           int c= 3;//0000 0011

          

           //左移运算符

           System.out.println(c<< 2);//0000 1100
结果为12 3*(2的2次幂)

 

           //右移运算符

           System.out.println(c>> 2);//0000 0000
结果为0 3/(2的2次幂)

          

           //无符号右移运算符

           int d= -1;

           System.out.println(d>> 1);//结果为-1

           System.out.println(d>>> 1);//2147483647

 

           //& 位运算符

           /*

            *  00000010

            & 0000 0011

            * ---------

            *  00000010

           */

           System.out.println(2& 3);//结果为2

 

           //三元运算符

           Stringe = d > 3 ? "d > 3" : "d <= 3";

           System.out.println(e);//结果为 d <= 3

 

           e = d> 3 ? "大于" : "不大于";

           System.out.println(e);

 

           //以下不能通过编译,因为两边必须是表达式,且必须是类型兼容的表达式

           //d> 3 ? System.out.println("a"); :System.out.println("b");

 

      }

}

 

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐