一 算术运算符 + - * / %取余
String a,b ---a+b代表字符串相连
String a=“abc”; int b=3 ---a+b为字符串相连,结果“abc3”
常用语句类似
String s="abcdef";
int i=5;
System.out.println("s="+s+",i="+i); //s=abcdef,i=5
/ ---1除法运算,整数和整数相除,结果还是整数
---2小数和小数相除,结果是小数
---3整数和小数相除,结果是小数
float f1=1/3*3;
System.out.println(f1); //0.0
float f2=1.0f/3*3;
System.out.println(f2); //1.0
float f3=1/3*3.0f;
System.out.println(f3); //0.0
注意:1 除数不能为0
2字符串只能相加 String
3 小括号优先级最高
二 赋值运算符 =
左边必须是变量;左边不能是表达式
b=a+5 // 把a+5的值赋值给b
注:赋值运算符优先级最低
赋值表达式(如c=a+b)的值 就是左边的值,如就是c的值
复合运算符如下:
i+=3 相当于 i=i+3
i*=3 相当于 i=i*3
三 类型转换
short s=2;
int a=s;
System.out.println(a); //2 short赋值给int类型OK
例1
int a=2;
short s;
s=(short)a //强制类型转换,也叫显示转换,有风险。
例2
float f=1.0f;
double l=5.0;
f=(float)l;
总结: 范围小的类型赋值给范围大的类型,OK ,隐式转换
范围大的类型赋值给范围小的类型,显示转换,强制类型转换
int i=5;
float f=3.0f;
i=(int)f;
float 赋值给int ,需要用显示转换,会丢掉小数部分
转换只适用于 byte 、short、int、long、float、double、之间转换
那如何从整型转化为字符串??? 方法如下:
方法1:
int i=5;
String s=“”+i;
方法2:
int i=5;
String s=Integer.toString(i); //5
那如何从字符串转化为整数??? 方法如下:
String s="666";
int i=Interger.parseInt(s2);
//数字转化为字符串
int i=5;
String s="666";
s=Integer.toString(i);
System.out.println(i); //5
//字符串转化为数字
int i1=6;
String s1="666";
i1=Integer.parseInt(s1);
System.out.println(i1);//666
四: 交换ab的值
//交换ab值
int i=5;
int j=10;
int temp;
temp=i;// i=5,j=10;temp=5
i=j;//i=10,j=10,temp=5
j=temp;//i=10,j=5,temp=5
System.out.println("i="+i+",j="+j);
五 自增自减
a++; ++a;a=a+1; a+=1
a--; ++a;a=a-1;a-=1
只能普通变量自增
a++ 和++a a++取自增之前的值,++a取自增之后的值
六 关系运算符与关系表达式
<= >= == != > <
结果boolean类型 :true false
--字符串比较
String s1="a";
String s2="ab";
System.out.println(s1.equals(s2));
七 逻辑运算符
&& 逻辑与 、并且、and and
||
! !false ---true !true --false
短路运算 ---&& 会进行短路运算 &不会进行短路运算
八 条件运算符
表达式1?表达式2:表达式3 --三目运算符
max=(a>b?a:b);
//条件运算符
int a=10;
int b;
b=(a>4?666:888);
System.out.println(b);
// 判断能否被3整除
String s=(a%3==0?"能被3整除":"不能被3整除");
System.out.println(s);