java运算符表达式与语句

 

java运算符表达式与语句


基本运算

举例一。1:最简单加减法运算

举例一。2:变量赋值

[java]  view plain copy print ?
  1. public class OperateDemo01  
  2. {  
  3.     public static void main(String args[]){  
  4.         int num  = 22;  
  5.         System.out.println("第一次输出:num" + num);  
  6.         num = num - 3;  //  修改变量内容  
  7.         System.out.println("第二次输出:num" + num);  
  8.     }  
  9. }  

一元操作符


举例二:正、负、取反

[java]  view plain copy print ?
  1. public class OperateDemo02  
  2. {  
  3.     public static void main(String args[]){  
  4.         boolean b = false;  
  5.         int x = 10;  
  6.         int y = -30;  
  7.         System.out.println("b = " + b + ", !b = " + !b);   // 取反操作  
  8.         System.out.println("x = " + x +", -x = " + -x);     // 使用负号  
  9.         System.out.println("y = " + y +",  +y = " + +y);  // 使用正号  
  10.   
  11.     }  
  12. }  


算术运算符
加减乘除


取模运算符
[java]  view plain copy print ?
  1. public class OperateDemo03  
  2. {  
  3.     public static void main(String args[]){  
  4.         int i = 10;  
  5.         int j = 3;  
  6.         System.out.println(i + " + " + j + " = "  + (i + j));  //加法操作  
  7.         System.out.println(i + " - " + j + " = "  + (i - j));  //减法操作  
  8.         System.out.println(i + " * " + j + " = "  + (i * j));  //乘法操作  
  9.         System.out.println(i + " / " + j + " = "  + (i / j));  //除法操作  
  10.         System.out.println(i + " % " + j + " = "  + (i % j));  //取模操作  
  11.     }  
  12. }  

关系运算符


举例四:大于小于

[java]  view plain copy print ?
  1. public class OperateDemo04  
  2. {  
  3.     public static void main(String args[]){  
  4.         System.out.println("3 > 1 = " + (3 > 1));   //使用大于号  
  5.         System.out.println("3 < 1 = " + (3 < 1));   //使用小于号  
  6.         System.out.println("3 >= 1 = " + (3 >= 1));   //使用大于等于号  
  7.         System.out.println("3 <= 1 = " + (3 <= 1));   //使用小于等于号  
  8.         System.out.println("3 == 1 = " + (3 == 1));   //使用等于号  
  9.         System.out.println("3 != 1 = " + (3 != 1));   //使用不等  
  10.     }  
  11. }  


if判断语句


举例五:

[java]  view plain copy print ?
  1. public class OperateDemo05  
  2. {  
  3.     public static void main(String args[]){  
  4.         if(5>2){  
  5.             System.out.println("条件成立:5大于2");  
  6.         }  
  7.         if(true){  
  8.             System.out.println("直接写的true");  
  9.         }  
  10.         if((3+6)==(3-6))  
  11.         System.out.println("这是不可能成立的");   //  如果只有一条语句可以不写括号。  
  12.     }  
  13. }  


自增、自减


举例六

[java]  view plain copy print ?
  1. public class OperateDemo06  
  2. {  
  3.     public static void main(String args[]){  
  4.         int a = 3 , b = 3;  // 定义两个变量a和b  
  5.         System.out.println("a = " + a);  
  6.         // a++ 先计算,后自增  
  7.         System.out.println("\t a++ = " + (a++) + ", a = " + a);  
  8.         // ++b 先自增,后计算  
  9.         System.out.println("\t ++b = " + (++b) + ", b = " + b);  
  10.     }  
  11. }  



++x,--x尽量不要出现


逻辑运算符

&&,||,真值表


举例七

[java]  view plain copy print ?
  1. public class OperateDemo07  
  2. {  
  3.     public static void main(String args[]){  
  4.         boolean a = true;  
  5.         boolean b = false;  
  6.         System.out.println("a || b  = " + (a || b));  
  7.         System.out.println("a | b = " + (a | b));  
  8.         System.out.println("a && b = " + (a && b));  
  9.         System.out.println("a & b = " + (a & b));  
  10.   
  11.     }  
  12. }  


使用if语句进行多条件判断

举例八

[java]  view plain copy print ?
  1. public class OperateDemo08  
  2. {  
  3.     public static void main(String args[]){  
  4.         int score = 50;  //定义成绩  
  5.         if((score<0) || (score>100)){  
  6.             System.out.println("输入的成绩有错误");  
  7.         }  
  8.         if((score<60) && (score>49)){  
  9.             System.out.println("成绩不及格准备补考吧!");  
  10.         }  
  11.     }  
  12. }  


“短路与”与“短路或”

典型错误举例九

[java]  view plain copy print ?
  1. public class OperateDemo09  
  2. {  
  3.     public static void main(String args[]){  
  4.         int x = 10/0;   //定义变量  
  5.         System.out.println("x = " + x);  
  6.     }  
  7. }  


应该错误进行验证

与的举例十

[java]  view plain copy print ?
  1. public class OperateDemo10  
  2. {  
  3.     public static void main(String args[]){  
  4.         if(10!=10&10/0==0){  
  5.             System.out.println("条件满足");       
  6.         }  
  7.     }  
  8. }  



短路与的举例十一

[java]  view plain copy print ?
  1. public class OperateDemo11  
  2. {  
  3.     public static void main(String args[]){  
  4.         if(10!=10&&10/0==0){  
  5.             System.out.println("条件满足"); // 使用&&短路与  
  6.         }  
  7.     }  
  8. }  


 

“短路与”只要第一个条件满足,之后的程序代码都不再执行了。

或的举例十二

[java]  view plain copy print ?
  1. public class OperateDemo12  
  2. {  
  3.     public static void main(String args[]){  
  4.         if(10!=10|10/0==0){  
  5.             System.out.println("条件满足"); // 使用“|”非短路或  
  6.         }  
  7.     }  
  8. }  


 

短路或的举例十三

[java]  view plain copy print ?
  1. public class OperateDemo13  
  2. {  
  3.     public static void main(String args[]){  
  4.         if(10==10||10/0==0){  
  5.             System.out.println("条件满足"); // 使用“||”短路或  
  6.         }  
  7.     }  
  8. }  


 

经过以上分析之后,可以总结出,短路与和短路或是最经常使用到一种代码。

 

括号的使用


作用可以改变优先级
3+5+4*6-7 //默认是先乘除后加减
(3+5+4)*(6-7)

举例十四

[java]  view plain copy print ?
  1. public class OperateDemo14  
  2. {  
  3.     public static void main(String args[]){  
  4.         int result1 = 3 + 5 + 4 * 6 -7;  
  5.         int result2 = (3 + 5 + 4) *(6 - 7);  
  6.         System.out.println("3 + 5 + 4 * 6 -7 = " + result1);  
  7.         System.out.println("(3 + 5 + 4) *(6 - 7) = " + result2);  
  8.     }  
  9. }  


 


位运算符


如果要想时行位操作,则需要先将十进制的数据变为二进制数据,除以2的形式,求余数。

异或:相反为1,相同为0
举例十五

[java]  view plain copy print ?
  1. public class OperateDemo15  
  2. {  
  3.     public static void main(String args[]){  
  4.         int x = 3;  //3的二进制数据 00000000 00000000 00000000 00000011   3  
  5.         int y = 6;  //6的二进制数据 00000000 00000000 00000000 0000110     6  
  6.         System.out.println(x & y);  //与 00000000 00000000 00000000 00000010    2  这里容易出错  
  7.         System.out.println(x | y);   //或 00000000 00000000 00000000 00000111  7   这里容易出错  
  8.         System.out.println(x ^ y);   //异或 00000000 00000000 00000000 00000101   5   这里容易出错  
  9.     }  
  10. }  


 

int x = 3;                     // 3的二进制数据: 00000000 00000000 00000000 00000011
int y = 6;                     // 6的二进制数据: 00000000 00000000 00000000 00000110

System.out.println(x & y);                //与     00000000 00000000 00000000 00000010
System.out.println(x |  y);                //或     00000000 00000000 00000000 00000111
System.out.println(x ^  y);                //异     00000000 00000000 00000000 00000101

还可以通过“~”取反码

举例十六

[java]  view plain copy print ?
  1. public class OperateDemo16  
  2. {  
  3.     public static void main(String args[]){  
  4.         int x = -3;   //应该以补码的形式存在,补码 = 反码 + 1  
  5. /* 
  6. 学习汇编必备知识 
  7. 求-3的补码 
  8.  
  9. 方法: 
  10. ->求原码(第一位为1,其余位按二进制形式表示) 
  11. ->求反码(除第一位之外,其余位数全部取反) 
  12. ->求补码(在反码的基础之上再加1) 
  13. ->求反码(整体位数取反) 
  14.  
  15. 1|0000000 00000000 00000000 00000011   -> -3的原码 
  16. 1|1111111 11111111 11111111 11111100   -> -3的反码 
  17. 1|1111111 11111111 11111111 11111101   -> -3的补码   //也就是说这就是-3的二进制码 
  18. 0|0000000 00000000 00000000 00000010   -> ~3  = 2 
  19.  
  20. 注意: 
  21. 第一位为1表示负数 
  22. 除第一位之外其余位数表示二进制数字 
  23. */  
  24.         System.out.println(~x);  
  25.     }  
  26. }   



int x = -3;   // 应该以补码的形式存在
取反码的方法:找一下最精确的解释方法

左移与右移的方法

举例十七

[java]  view plain copy print ?
  1. public class OperateDemo17  
  2. {  
  3.     public static void main(String args[]){  
  4.         int x = 3;  // 3的二进制数据:00000000 00000000 00000000 0000011  
  5.         System.out.println(x + "左移2位之后的内容:" + (x << 2)); //x=12  
  6.     }  
  7. }   



x<<2

// 3的二进制数据: 00000000 00000000 00000000 00000011
// 3的左移2位据:   00000000 00000000 00000000 00001100
 
举例十八

[java]  view plain copy print ?
  1. public class OperateDemo18  
  2. {  
  3.     public static void main(String args[]){  
  4.         int x = 3;  // 3的二进制数据:00000000 00000000 00000000 0000011  
  5.         int y = -3;  // 3的二进制数据:10000000 00000000 00000000 0000011  
  6.         /* 
  7.         求-1的二进制码(哇塞牛比) 
  8.         10000000 00000000 00000000 00000001 原码 = 第一位为1其余位按二进制处理 
  9.         11111111 11111111 11111111 11111110 反码 = 除第一位全部取反 
  10.         11111111 11111111 11111111 11111111 补码 = 反码+1 
  11.         */  
  12.   
  13.         System.out.println(x + "右移2位之后的内容:" + (x >> 2));   
  14.         System.out.println(y + "右移2位之后的内容:" + (y >> 2));   
  15.     }  
  16. }   



x>>2

学习汇编必备资料

无符号右移
举例十九

[java]  view plain copy print ?
  1. public class OperateDemo19  
  2. {  
  3.     public static void main(String args[]){  
  4.         int x = 3;  // 3的二进制数据:00000000 00000000 00000000 0000011  
  5.         int y = -3;  // 3的二进制数据:10000000 00000000 00000000 0000011  
  6.   
  7.         System.out.println(x + "右移2位之后的内容:" + (x >>> 2));   
  8.         System.out.println(y + "右移2位之后的内容:" + (y >>> 2));   
  9.     }  
  10. }   



x>>>2

位操作实际上在基本的开发中使用较少,对于一些底层的加密,MD5等才会用到。

SimpleExpress

 

简单运算符及表达式的使用


在java中提供了以下几种运算符,
+=
-=
x=
/=
%=

b++
与++b
b--
与--b

[java]  view plain copy print ?
  1. public class SimpleExpressDemo01  
  2. {  
  3.     public static void main(String args[]){  
  4.         int a = 5, b= 1;  
  5.         System.out.println("改变之前的数是:a = " + a + ", b = " + b);  
  6.         a += b; //等价于a = a + b  
  7.         System.out.println("改变之后的数是:a = " + a + ", b = " + b);    
  8.     }  
  9. }  


 

 以上的运算实际上操作起来更加简便,但是这样的操作在现在开发中已经不提倡。

TypeChangeDemo

 

表达式类型的转换

 

当Java发现程序中表达试中有类型不相符的情况时,会依据下列的规则来处理类型的转换。
1.占用字节较少的类型转换成占用字节较多的类型。
2。字符类型会转换成int类型。
3.int 类型会转换成float类型。
4.表达式中若某个操作数的类型为double,则另一个操作数字也会转换成double类型。
5.布尔类型不能转换成其它类型。

举例:

[java]  view plain copy print ?
  1. public class TypeChangeDemo{  
  2.     public static void main(String args[]){  
  3.         char ch = 'a';  
  4.         short a = -2;  
  5.         int b = 3;  
  6.         float f = 5.3f;  
  7.         double d = 6.28;  
  8.         System.out.println("(ch / a) - (d / f) - (a + b) = ");  
  9.         System.out.println((ch / a) - (d / f) - (a + b) );    
  10.     }  
  11. }  

 

只要数据操作中出现了double类型,则肯定是最大的类型,最终的操作结果以此类型为准备。
一般来讲开发中一定要写简单代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值