1、运算符:运算的符号
#算术:+,-,*,/,%,++,--
%:取模/取余,余数为0即为整除
++/--:自增1/自减1,可前可后
单独使用时,前后都一样
被使用时,前后不一样:
a++的值为a, a--的值为a
++a的值为a+1, --a的值为a-1
int a=5,b=5;
a++;
++b;
System.out.println(a);//6
System.out.println(b);//6
int a=5,b=5;
int c=a++;
int d=++b;
System.out.println(c);//5 被使用时,++在后
System.out.println(d);//6 被使用时,++在前
#关系:>,<,>=,<=,==,!=
关系运算结果为boolean型,关系成立则为true,关系不成立则为false
#逻辑:&&,||,!
&&:短路与,两边都真才为真,见false则false
||:短路或,有真则为真,见true则true
!: 逻辑非(取反),非真则假,非假则真。
#赋值:=,+=,-=,/=,%=
简单赋值运算符:=
扩展赋值运算符:+=,-=,*=,/=,%=
说明:扩展赋值自带强转功能
小面试题:
short s=5;
s=s+10; //编译错误,需强转:s=(short)(s+10);
s+=10; //编译正确,自带强转功能,相当于s=(short)(s+10);
#字符串连接:+
+:
若两边为数字,则做加法运算;
若两边出现了字符串,则做字符串连接;
任何类型与字符串相连,结果都会变为字符串类型-----同化作用
System.out.println(10+20+30+" ") //60 -----string
System.out.println(10+20+" "+30) //3030 -----string
System.out.println(" "+10+20+30) //102030 -----string
#三目:?:
语法:boolean?数1:数2
计算boolean的值:
若为true,则整个表达式的值为?后面的数1
若为false,则整个表达式的值为:后面的数2
int num=5;
int flag=num>0?1:-1
System.out.println(falg);//1
2、分支结构:基于条件执行某语句
#if 结构:1条路
语法:if(boolean){ 语句块}
执行过程:判断boolean的值:
若为true,则执行语句块1(if整个结束)
若为false,则if直接结束
#if...else结构:2条路
语法:if(boolean){
语句块一}else{
语句块二}
执行过程:
判断boolean值:
若为true,执行语句块一整个结束
若为false,执行语句块二整个结束
说明:语句块一和语句块二必走其一。