本课内容本课内容Java运算符表达式运算符运算符算术运算符:+,―,*,/,%,++,――关系运算符:>,<,>=,<=,==,!=布尔逻辑运算符:!,&,|,^,&&,||位运算符:&,|,^,~,>>,<<,>>>赋值运算符:=扩展赋值运算符:+=,―=,*=,/=字符串连接运算符:+算术运算符算术运算符•注意事项:一个数除以零,若这个数是整型,则会产生一个异常(程序运行时中途退出,编译不会产生错误),若这个数是浮点型,则产生一个无穷大的值。•对于取模操作与别的程序语言有所区别,其操作数可以是浮点型。算术运算符案例算术运算符案例11•publicclassTest4_1{•publicstaticvoidmain(String[]args){•System.out.println("17.3mod0="+17.3%0);•System.out.println("17mod4="+17%4);•System.out.println("17.3mod0="+17.3%0);•System.out.println("17/0="+17/0);•}•}算术运算符案例算术运算符案例22•案例案例22::求一个四位整型数,计算其个、十、百、位上的数之和。如1789•个、十、百、位上的数之和=1+7+8+9=25.算术运算符案例算术运算符案例22•publicclassTest4_2{•publicstaticvoidmain(String[]args){•inti,a,b,c,d;i=1789;•a=i/1000;•b=i%1000/100;•c=i%100/10;•d=i%10;•System.out.println("你输入的整数是"+i+"其千百十个位上的数之和为"+(a+b+c+d));•}•}自增、自减运算符自增、自减运算符++++、、----案例案例33publicclassTest4_3{publicclassTest4_3{publicstaticvoidmain(String[]args){publicstaticvoidmain(String[]args){inti=9,a,b;inti=9,a,b;b=i++;//b=i++;//先赋值再自加先赋值再自加a=++i;//a=++i;//先自加再赋值先自加再赋值System.out.println("b="+b);System.out.println("b="+b);System.out.println("i="+i);System.out.println("i="+i);System.out.println("a="+a);System.out.println("a="+a);}}}}逻辑运算符逻辑运算符(1)(1)逻辑运算符功能!--逻辑非&--逻辑与|--逻辑或^--逻辑异或&&--短路与||--短路或逻辑运算符功能说明:ab!aa&ba|ba^ba&&ba||btruetruetruefalsefalsetruefalsefalse逻辑运算符逻辑运算符(1)(1)逻辑运算符功能!--逻辑非&--逻辑与|--逻辑或^--逻辑异或&&--短路与||--短路或逻辑运算符功能说明:ab!aa&ba|ba^ba&&ba||btruetruefalsetruetruefalsetruetruetruefalsefalsefalsetruetruefalsetruefalsetruetruefalsetruetruefalsetruefalsefalsetruefalsefalsefalsefalsefalse逻辑运算符案例逻辑运算符案例44publicclassTest4_4{publicstaticvoidmain(Stringargs[]){booleana,b,c;a=true;b=false;c=a&b;System.out.println(c);c=a|b;System.out.println(c);c=a^b;System.out.println(c);c=!a;System.out.println(c);c=a&&b;System.out.println(c);c=a||b;System.out.println(c);}}逻辑运算符逻辑运算符(2)(2)短路逻辑运算符应用&&--第一个操作数为假则不判断第二个操作数||--第一个操作数为真则不判断第二个操作数MyDated;–if((d!=null)&&(d.day>31)){–//dosomethingwithd–}–if(i<0||i>31){–System.out.println("非法赋值");–}位运算符位运算符位运算符功能~--取反&--按位与|--按位或^--按位异或位运算符功能说明:01001111~1011000001101101&010010011100101101101101|111011111100101101101101^1010011011001011位运算符位运算符案例案例55分析下面程序的输出结果并验证:publicclassTest4_5{publicstaticvoidmain(Stringargs[]){inta=10;inti=~a;System.out.println("i="+i);System.out.println(128|3);System.out.println(67^3);System.out.println(67&3);}}移位运算符移位运算符(1)(1)左移–"a<>b;"将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位;无符号右移–"a>>>b;"将二进制形式的a逐位右移b位,最高位空出的b位补0。移位运算符移位运算符(2)(2)移位运算符性质–适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位–对于int型整数移位a>>b,系统先将b对32...