+,-,*,/,%(模:求余数)
注意事项:/ 是取整
% 是求余数的
扩展的算术运算符:++,--classOperatorDemo{publicstaticvoidmain(String[] args){//定义两个变量int a =3;int b =4;//+,-,*,/,%(模:求余数)System.out.println("(a+b):"+(a+b));System.out.println("(a-b):"+(a-b));System.out.println("(a*b):"+(a*b));System.out.println("(a/b):"+(a/b));//就先出现小数,需要类型提示,分子分母上给乘以double类型的值System.out.println("(a/b):"+(a*1.0/b));System.out.println("(a%b):"+(a%b));// /:取整,小数在进行除,无限近似于某个值 jdk--->// BigDecimal:小数的精确计算}}
扩展的算术运算符
扩展的算术运算符:++,--
情况1:单独使用:比较简单
无论++或者--在数据的前面还是后面,都是对这个变量本身自增1或
者自减1
情况2:参与运算使用
1)如果++或者--在数据的前面,先进行自增或者自减,然后参与运算;2)如果++或者--在数据的后面,先运算,然后进行自增或者自减
classOperatorDemo2{publicstaticvoidmain(String[] args){//定义两个变量int a =3;int b =4;//先输出 a,b的值System.out.println("a:"+a);System.out.println("b:"+b);System.out.println("------------------------------");//情况1:单独使用//1)++或者--在数据的前面//++ a;//-- b ;//2)++或者--在数据的后面
a ++;
b --;System.out.println("a:"+a);System.out.println("b:"+b);System.out.println("--------------情况2:参与运算时----------------");//在定义两个变量int x =4;int y =5;System.out.println("x:"+x);System.out.println("y:"+y);System.out.println("--------------------------------------------");;//情况2:参与运算使用//1)参与运算时,如果++或者--在数据的前面//int m = ++ x ; // ++x ---->++4 = 5 --->把5赋值
给m
//int n = -- y ; // --y ---->--5 = 4 --->把4赋值n//System.out.println("x:"+x) ; //5//System.out.println("y:"+y) ; //4//System.out.println("m:"+m) ; // 5//System.out.println("n:"+n) ; //4//2)参与运算时,如果++或者--在数据的后面int m = x ++;// int m = x ; x= 4 --->m =4 , x = 4++--->5int n = y --;//int n = y ; y = 5 ---->n =5,y=5 ------>4System.out.println("x:"+x);//5System.out.println("y:"+y);//4System.out.println("m:"+m);// 4System.out.println("n:"+n);// 5}
4.赋值运算符的扩展运算符的特点
隐藏了强制类型转换
/*
面试题: 考点(扩展的赋值运算符的特点)
定义一个short类型的变量
short s = 1 ;
1)s = s + 1 ;
2) s += 1 ;
1)和2)代码哪一个编译失败,为什么,哪一个编译成功,为什么?
1)会失败
=右边,s---先提升int,然后进行计算--->结果为int
=左边short,无法接收=右边的int类型
2)不会失败
在扩展的赋值运算符里面,
+=,-=,*=,/=,%= 隐藏了强制类型转换
s += 1 等价于 s = (short)(s + 1);
//改进
int s = 1 ;
s +=1 ; ===等价 s = s +1 ;
*/classOperatorDemo2{publicstaticvoidmain(String[] args){//定义变量short s =1;//不兼容的类型: 从int转换到short可能会有损失//s = s + 1 ;//会编译失败,=右边,s---先提升int,然后进行计算--->结果为int//=左边short,无法接收=右边的int类型//强制类型转换//s = (short)(s+1) ;//System.out.println(s) ;
s +=1;//等价于 s = (short)(s + 1); 隐藏了强制类型转换//相当于这个s = (short)(s+1) ;System.out.println(s);}}
5.比较运算符
这些运算符:无论这些符号连接的表达式是简单的还是复杂,结果应该布尔类
型,true/false
表达式:
这些运算符号--连接起来多个变量
注意:==不能写成 =
数学表达式:3<=x<=5,在计算机语言中,无法这样书写,需要逻辑符号连接起来
x>=3&(逻辑单与) x <=5classOperatorDemo{publicstaticvoidmain(String[] args){//<,>,<=,>=,==,!=//定义三个变量int a =3;int b =4;int c =5;System.out.println(a>b);System.out.println(a<b);System.out.println(a>=b);System.out.println(a<=b);System.out.println((a+b)<=(b+c));System.out.println(a!=b);System.out.println(a==c);System.out.println("---------------------------------");//==不能写成 =int m =10;int n =20;//两个数据比较:使用boolean接收boolean flag =(m==n);//int无法转换为boolean//boolean flag = (m=n) ;//将n的值赋值给m,将m的值留下来赋值
给flag,而flag变量是booleanSystem.out.println(flag);}}
格式:(简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;
执行流程:1)先判断表达式是true还是false,如果是true,执行成立的
结果;2)如果是false,执行不成立的结果;classOperatorDemo{publicstaticvoidmain(String[] args){//定义了两个变量int x =20;int y =5;//求x,y这两个数据的最大值;//定义一个结果变量,接收结果//(简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;int max =(x>y)? x:y ;System.out.println("两个数据中的最大值是:"+max);System.out.println("---------------------------------");//求x,y的最小值int min =(x<y)?x:y ;System.out.println("两个数据中的最小值是:"+min);System.out.println("---------------------------------");//比较x,y的值是否相等//boolean接收//boolean flag = (x==y)?true:false ;// 优化boolean flag =(x==y);//==本身就是比较System.out.println("flag:"+flag);//练习//有三个数据,a,b,c int类型,//int a = 20 ;//int b = 50 ;//int c = 15 ;//使用三元运算符:完成三个数据比较,获取最大值?}}
重点的运算符
进制:属于常量
进制的相互转换