标签:java的运算符
1.运算:对常量和变量进行操作的过程称为运算。
2.运算符:对常量和变量进行操作的符号称为运算符。
3.操作数:参与运算的数据称为操作数。
4.表达式:用运算符把常量或者变量连接起来的具有java语法的语句。不同运算符连接的语句体现的是不同类型的表达式。
例如:
int a = 3 + 4;
这是做了一个加法运算,+就是运算符,是算术运算符。3,4就是参与运算的操作数。3+4整体就是一个算术表达式。
5.算术运算符
+,-,*,/都是比较简单的操作。
+的作用:加法,整数,字符串连接符
除法的时候要注意:1)整数相除,只能得到整数2)要想到小数可以*1.0,将其转成double型
/** * 运算符:就是对常量和变量进行操作的符号。 * 分类:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符 * 算术运算符:+,-,*,/,%,++,-- * 注意事项: * 整数相除只能得到整数,如果要想得到小数,那么只需要将其中一个整数变为double型 * 整数相除,/获取的是除法操作的商,%获取的是除法操作的商。 */ public class OperatorDemo { public static void main(String[] args){ //定义变量 int x = 3;//把3赋值给into类型的变量x int y = 4; System.out.println(x+y);//加法 System.out.println(x-y);//减法 System.out.println(x*y);//乘法 System.out.println(x/y);//除法 System.out.println(x%y);//取模 } } 7 -1 12 0 3
/** * ++,--运算符的使用 * 作用:就是对变量进行自增或者自减 * 单独使用:放在操作数的前面和后面效果一行,单独的对变量的进行自增或自减 * 参与运算使用: * 放在操作数的前面,先自增或自减,然后再参与运算 * 放在操作数的后面,先残云运算,再自增或自减 * */ public class OperatorDemo2 { public static void main(String[] args){ //定义两个变量 int x = 3; int y = 4; //字符串的拼接 System.out.println("x="+x);//x=3 System.out.println("y="+y);//y=4 System.out.println("x="+x+",y="+y);//x=3,y=4 //单独使用 x++; y--; System.out.println("x="+x);//x=4 System.out.println("y="+y);//y=3 --x; --y; System.out.println("x="+x);//x=3 System.out.println("y="+y);//y=2 System.out.println("*********************"); int a = 3; int b = 4; int c = a++; int d = b--; System.out.println("a="+a);//a=4 System.out.println("b="+b);//b=3 System.out.println("c="+c);//c=3 System.out.println("d="+d);//d=4 int i = 3; int j =4; int l = ++i; int k = --j; System.out.println("i="+i);//i=4 System.out.println("j="+j);//j=3 System.out.println("l="+l);//l=4 System.out.println("k="+k);//k=3 } }
练习题:
/** * 下面的程序看看就行,实际中谁敢这样写,就要呵呵了 */ public class OperatorTest { public static void main(String[] args){ int a = 10; int b = 10; int c = 10; a = b++;//a=10,b=11,c=10 c = --a;//a=9,c=9,b=11 b = ++a;//a=10,b=10,c=9 a = c--;//a=9,c=8,b=10 System.out.println("a="+a+",b="+b+",c="+c); int x = 4; int y = (x++)+(++x) + (x*10); //(x++)-->4 x=5 //(++x)-->6 x=6 //(x*10)-->60 System.out.println("x="+x+",y="+y); } }
/** * +的用法: * 加法 * 正号 * 字符串连接符 * */ public class OperatorDemo3 { public static void main(String[] args){ //加法 System.out.println(3+4); //正号 System.out.println(+4); //字符串连接符 System.out.println(‘a‘); System.out.println(‘a‘+1); System.out.println("hello"+‘a‘+1); System.out.println(‘a‘+1+"hello"); } } 7 4 a 98 helloa1 98hello
6. 赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:+=,-=,*=,/=,%=
/** * 赋值运算符: * 基本的赋值运算符:= * 扩展的赋值运算符:+=,-+,*=,/=,%= * +=把左边和右边的做加法,然后赋值给左边的变量 */ public class OperatorDemo { public static void main(String[] args){ int x = 10; System.out.println("x="+x); int a,b; a=b=10; System.out.println(a); System.out.println(b); int y = 10; y += 20;//y=y+20 System.out.println(y); } }
7.比较运算符
8.逻辑运算符
逻辑运算符用于连接布尔型表达式,在java中不可以写成3<x<6,应该写成x>3&&x<6。
/** * 逻辑运算符 * &,|,^,! * &&,|| * 特点: * 逻辑运算符一般用于连接Boolean类型的表达式或者值。 * 表达式:就是用运算符把常量或者变量连接起来符合java语法的式子。 * 算术表达式:a+b * 比较表达式:a==b * 结论: * 逻辑与:& 一假则假 * 逻辑或:| 一真则真 * 逻辑异或 ^ 相同为假,不同为真 * 举例:情侣关系 男男,女女,false;男女,女男,true。 * 逻辑非:! 非false则true,非true则false * * &&和&的区别? * 最终结果一样 * && 具有短路效果,左边是false,右边不执行 */ public class OperatorDemo { public static void main(String[] args){ int a = 3; int b = 4; int c = 5; //逻辑与 & System.out.println((a>b)&(a>c));//false System.out.println((a>b)&(a<c));//false System.out.println((a<b)&(a>c));//false System.out.println((a<b)&(a<c));//true //逻辑或 | System.out.println((a>b)|(a>c));//false System.out.println((a>b)|(a<c));//true System.out.println((a<b)|(a>c));//true System.out.println((a<b)|(a<c));//true //逻辑异或 ^ System.out.println((a>b)^(a>c));//false System.out.println((a>b)^(a<c));//true System.out.println((a<b)^(a>c));//true System.out.println((a<b)^(a<c));//false //逻辑非 System.out.println(!(a>b));//true System.out.println((a>b)&& (a>c));//false System.out.println((a>b)&& (a<c));//false System.out.println((a<b)&& (a>c));//false System.out.println((a<b)&& (a<c));//true } }
9.位运算符
/** * 位运算符 * &,|,^,~ * <<,>>,>>> * 注意: * 要做位运算,首先要将数据转换为二进制。 */ public class OperatorDemo { public static void main(String[] args){ int a = 3; int b = 4; /** * 分析:因为是位运算,所以我们必须将数据换算成二进制。 * 3的二进制是:11 * 00000000 00000000 00000000 00000011 * 4的二进制是:100 * 00000000 00000000 00000000 00000100 * &:有0则0 * 00000000 00000000 00000000 00000000 * 结果是0 * |:有1则1 * 00000000 00000000 00000000 00000111 * 结果是7 * ^:相同为0,不同为1 * 00000000 00000000 00000000 00000111 * 结果是7 * ~按位取反,0变1,1变0 * 11111111 11111111 11111111 11111100 -->补码 * 11111111 11111111 11111111 11111011 -->反码 * 10000000 00000000 00000000 00000100 -->原码 */ System.out.println(a & b); System.out.println(a | b); System.out.println(a ^ b); System.out.println(~a); /* * ^的特点:一个数据对另一个数据位异或两次,该数本身不变 * 应用:用来进行数据的加密 */ int x = 10; int y = 20 ; System.out.println(x ^ y ^ y);//10 System.out.println(x ^ y ^ x);//20 } }
/** * 实现两个整数变量的交换 * */ public class OperatorDemo { public static void main(String[] args){ int a = 3; int b = 4; System.out.println("a="+a+",b="+b); //实现一,使用第三变量 int c = a; a = b; b = c; System.out.println("a="+a+",b="+b); //实现二,使用位异或实现 //左边:a,b,a //右边:a,b a = a ^ b; b = a ^ b; a = a ^ b; System.out.println("a="+a+",b="+b); //实现三,用变量相加的方法 a = a + b; b = a - b; a = a - b; System.out.println("a="+a+",b="+b); } }
/** * << 左移 左边最高位丢弃,右边补齐0 * >> 右移 最高位是0,左边补齐0;最高位为1,左边补齐1 * >>> 无符号右移 无论最高位是0还是1,左边补齐0 * */ public class OperatorDemo { public static void main(String[] args){ /** * 分析: * 计算出3的二进制:11 * 00000000 00000000 00000000 00000011 * [00]00000000 00000000 00000000 00001100 * --> 00000000 00000000 00000000 00001100 * 结论:把<<左边的数据*2的移动次幂 */ System.out.println(3 << 2);//12 //把>>右边的数据除以2的移动次幂 System.out.println(24 >> 2);//24 / 2(2) =6 System.out.println(24 >>> 2); System.out.println(-24 >> 2);//-6 System.out.println(-24 >>> 2);//1073741818 } }
10.三目运算符
(关系表达式)?表达式1:表达式2;
如果关系表达式的值是true,那么运算后的结果是表达式1,如果关系表达式的值是false,那么运算后的结果是表达式2。
/** * 单目运算符呢:~3 * 双目运算符:3 + 4 * 三目运算符 * 格式:布尔表达式?表达式1:表达式2; * 执行流程: * 根据布尔表达式的计算返回一个true或者false, 如果是true,就把表达式1作为结果,如果是false,就把表达式2作为结果。 * * */ public class OperatorDemo { public static void main(String[] args){ int x = 100; int y = 200; int z = x > y ? x : y; System.out.println(z); } }
本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1853116
标签:java的运算符
原文地址:http://11841428.blog.51cto.com/11831428/1853116