运算符

来源:互联网 发布:http默认端口号 编辑:程序博客网 时间:2024/05/18 04:43
1.赋值运算符:=用来给变量赋值的
注意点:对变量赋值的时候,要注意,变量是否为原变量,
如果为原变量,变量名前不要加类型,如果是新变量,那么加类型。


+=:a+=b --> a=a+b-=:a-=b --> a=a-b
*=:a*=b --> a=a*b/=:a/=b --> a=a/b


2.算术运算符
+-*/%(模运算)++--
小括号>乘除法>加减法  顺序运算


+加法运算:只有+两端都是数值的时候

-:减法运算-两边只能是数值类型连续相减按顺序执行
如果出现小括号,先进行括号里运算(优先级更高)


*:乘法运算
*两边的只能是数值类型*运算比+ -优先级更高,同时出现先运算*
小括号的优先级比乘法运算级更高


/:除法运算两端只能是数值类型
int/int 结果一定是int 如果是小数,那么取小数的整数部分,小数部分不管   5/3=1


%:取余(余数) 5%3=2

++:自增1
a++:int b = a++;1.将a的值赋给b2.a进行自增1


++a:   int b = ++a;1.a进行自增12.将a的值赋给b


--:自减1
a--:int b = a--;1.将a的值赋给b2.a进行自增1


--a:   int b = --a;1.a进行自增12.将a的值赋给b

3.字符串连接运算符:+
如果+两端都是String类型,此时+是字符串连接运算符,功能:拼接字符串
+一端是String,另一端是数值,+也是连接运算符
出现多个+,按顺序两两执行运算,一端出现了String,那么连接运算,
结果也是String类型,再继续运算
System.out.println(3+5+""+7+9);//结果为879


4.比较运算符(关系运算符)
<><=>=!=(不等于)==(等于)


5.逻辑运算符(&&的运算级比||高)
用于boolean类型
&&(并且)   a && b||(或者)  a||b!(非) !true(false)
&(并且)|(或者)




&与&&的区别:1.&&:短路与
boolean b = (3>5)&&(6<7)  前面为false(只执行前面一个,后面不执行)
前面为true,后面执行
   2.&:不短路两边都会执行判断,再得出结果。


|与||的区别:1.||:短路或
boolean a = (3<5) || (6>7)  前面为true(只执行前面一个,后面不执行
前面为false,后面执行
   2.|:不短路两边都会执行判断,再得出结果。 


6.条件(三目)运算符
boolean表达式 ? 表达式1:表达式2
1.int j =8, k =5;
int r=j>k?j:k;
System.out.println(r);//结果为8
2.//嵌套使用
int a = -3;
String r = a > 0 ? "正数" : (a == 0 ? "0":"负数");
System.out.println(r); //结果为负数,因为 a 的值小于 0,即boolean 表达式的值为 false ,
则取问号后第二个表达式的值作为表达式的结果。而问号后的第二个表达式也是一个三目运算符所构成的表达式。因为 a==0 表达式的值为 false,则取“负数”为表达式的结果。


类中的内容:
package day03;public class OperDemo {public static void main(String[] args) {int a = 5;a++;System.out.print(a);//6 单独运算前后++一致,都加1,没影响int b = 5;++b;System.out.print(","+b);//6int c = 5;int d = c++;System.out.print(","+c);//6System.out.println(","+d);//5 c先赋值给d,再自增1int e = 5;int f = ++e;System.out.print(e);//6System.out.println(","+f);//6int g = 5, h = 5;System.out.print(g--);//5 先输出g的值,再自减1System.out.print(","+g);//4System.out.print(","+--h);//4 先自减1,再输出h的值System.out.println(","+h);//4}}


效果如图:




package day03;import java.util.Scanner;public class LeapYear {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入年份:");int year =scan.nextInt();boolean flag = (year%4 == 0 && year%100 != 0) || year%400 == 0;//&&的运算级比||高String str = flag ? year+"是闰年" : year+"是平年";System.out.println(str);scan.close();//关闭scan}}


效果如图: