//运算符(operator) // 计算机的基本用途就是执行数学运算,Java提供了一套丰富的运算符来操作变量。 //算术运算符( 二元运算符和一元运算符) 赋值运算符 扩展运算符 关系运算符 逻辑运算符 位运算符 条件运算符 字符串连接 //算术运算符( 二元运算符[+,-,*,/,%]和一元运算符(++,--) 赋值运算符(=) 扩展运算符(=+,-=,*=,/=) 关系运算符(>,<,>=,<=,==,/=) 逻辑运算符(&&,||,!,^) 位运算符(&,|,`,>>,<<,>>>) 条件运算符 (?:) 字符串连接(+) //1.+,*,/,%属于二元运算符。%是取模运算符,就是我们常说的求余数操作。 // 2.算术运算符中++(自增),--(自减)属于一元运算符。 //二元运算符的运算规则: // 整数运算: // 如果两个操作数有一个为long,则结果也为long。没有long时,结果为int 即使操作数全为short,byte,结果也是int。 // 浮点运算:如果两个操作数有一个为double,则结果为double。只有两个操作数都是float,则结果才为float。 // 取模运算:其操作数可以为浮点数一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。 //关系运算符 // =是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。 // ==、!=是所有(基本和引用)数据类型都可以使用。 // >=,<= 仅针对数值类型(byte/short/int/long,float/double 以及 char) //逻辑运算符 // 与(&)和短路与(&&)【只要有一个为false则都为false短路与(&&)】或(|)和短路或(||)【只要一个为ture,则为ture非( !)短路或(||)】相反 异或(^)相同为false不同为true // 短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。 //位运算 // 位运算指的的运行二进制位的运算。 // ~取反 &按位与 | 按位或 ^按位异或 <<左移运算符,左移1位相当于乘以2 >>右移1位相当于除以2取商. //字符串连接符 // “+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。 // 条件是String,不是char.若是char,仍然是加法 // 条件运算符 String type=score <60?"不及格":“及格” //大家不需要去刻意的记这些优先级,表达式里面优先使用小括号来组织!! // 逻辑与、逻辑或、逻辑非的优先级一定要熟悉! (逻辑非>逻辑与>逻辑或)。如: alb&&c的运算结果是:alb&&c) 而不是(ab)&&c //数据类型的转化 // 自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。 // byte-->short-->int-->long,char-->tint,int-->double,float-->double无数据丢失 // int-->float,long-->float,long-->double有可能会有精度的损失 // 特例:整型常量是int类型,但是可以自动转成:byte/short/char.只要不超过对应类型的表数范围 // 强制类型转化 // 强制类型转换,又称为造型(cast),用于强制转换数值的类型,可能损失精度。 // 强制转型,超过了表数范围,则会转成一个完全不同的值 // 数据溢出 // 操作比较大的数时,要留意是否溢出,尤其是整数操作时。 public class YunSuanFu { public static void main(String[] args){ int a=3; long b=3; long c=b+a; System.out.println("c="+c); double d=3+3.14; double d2=32.0/3; System.out.println("d2"+d2); int as=10%3; System.out.println("as="+as); int z=1; int v=z++;//z++:相当于:z=z+1 System.out.println("z++="+v); System.out.println("z="+z); int g=10; int h=g++;//g++先赋值,后自增 g=10; int i=++g;//++g先自增后,后赋值 System.out.println("h="+h); System.out.println("i="+i); int a1=1; int b1=2; a1+=b1; System.out.println("a1="+a1); a=3; int l=a1*=b1+3; System.out.println("l="+l); int t=4; int e=3; boolean s=t>e; System.out.println("s="+s); char h1='k'; System.out.println((int)h1); boolean l1=h1>100; System.out.println("l1="+l1);//char值位于0~65536之间,可以通过(int)强制转成数字 boolean b3=true; boolean b4=false; System.out.println(b3^b4); System.out.println(b3&b4); System.out.println(b3&&b4); System.out.println(b3||b4); System.out.println(b3|b4); System.out.println(!b3); int s1=7; int s2=8; System.out.println(s1|s2); System.out.println(s1&s2); System.out.println(s1^s2); System.out.println(~b); int o=5<<2; System.out.println(o); String u="2"; int b2=4; System.out.println(u+b2); char v1='h'; char v2='r'; System.out.println(v1+v2); //通过加空字符串,让整个+都 System.out.println(""+v1+v2); int score=90; String y=score<60?"不及格":"及格"; System.out.println("y="+ y); int d13=-100; int flag=d13>0?1:(d13==0?0:-1); System.out.println("flag="+flag); boolean s5=true,s6=true,s7=false; System.out.println(s5||s6&&s7); boolean s9=(3>1||4>3)&&(3<5); System.out.println("s9="+s9); int kl=2345; long bl=kl; double df=bl; System.out.println("df="+df); double fg=12.35; int gfd=(int)fg; System.out.println("gfd="+gfd); } }
Java--运算符
最新推荐文章于 2023-06-08 14:00:12 发布