运算符的分类:
- 赋值运算符
- 算数运算符
- 关系运算符
- 逻辑运算符
- 条件运算符
一、赋值运算符
1.1 运算符
例:
i +=5 ==> i+5赋值给i
i *=5 ==> i*5赋值给i
i /=5 ==> i/5赋值给i
i %=5 ==> i%5赋值i
1.2 表达式
以/=和%=为例:
int a=44;
System.out.println(a /=3);
System.out.println(a%=3);
结果为:
14
2
二、算数运算符
1.1 运算符
+(加)、-(减)、*(乘)、/(除)、%(取余)、++(自增)、--(自减)
1.2 表达式
探讨:++变量和变量++的区别
int c=2;
int number1=c++;
System.out.println(number1);
System.out.println(c);
System.out.println("====================");
int b=2;
int number2=++b;
System.out.println(number2);
System.out.println(b);
结果为:
2
3
==========================
3
3
为什么呢?
c++时,先把c赋值给number1,c自己再加一;
++b时,先自己加一,再把加一后的结果给number2
三、关系运算符
1.1 运算符
=(等于)、>=(大于等于)、<=(小于等于)、==(等等于)、!=(不等于)
1.2 表达式
探讨:==(true)与!=(false)
1.2.1 基本数据类型的比较(不可与String进行比较)
对于整型( byte、short(短整型)、 int(整形)、long(长整型)float(单精度浮点型)、double(双精度浮点数)和字符类型(char)之间进行比较,返回true或false。对于布尔型的比较,没有意义。
比较方式:
- 对于整形间可以直接使用==相互比较
- 对于整形和字符类型(char)之间,比较的是char的ASCII码与整形数字,并返回true或false
例:
char s4='9';
int s5=57;
char s6='9';
int s7=9;
System.out.println(s4==s5);
System.out.println(s7==s6);
结果为:
true
false
1.2.2 String的比较
对于equals()方法、equalsIgnoreCase()和==的比较
例1 (equals()的比较):
String hi1= "Hi";
String hi2= "Hi";
String hi3= "hi";
String hi4 = new String("Hi");
System.out.println(hi1.equals(hi2));
System.out.println(hi1.equals(hi3));
System.out.println(hi1.equals(hi4));
结果为:
true
false
true
例2 (equalsIgnoreCase()的比较):
String hi1= "Hi";
String hi2= "Hi";
String hi3= "hi";
String hi4 = new String("Hi");
System.out.println(hi1.equalsIgnoreCase(hi2));
System.out.println(hi1.equalsIgnoreCase(hi3));
System.out.println(hi1.equalsIgnoreCase(hi4));
结果为:
true
true
true
例3 ==的比较:
String hi1= "Hi";
String hi2= "Hi";
String hi4 = new String("Hi");
System.out.println(hi1==hi2);
System.out.println(hi2==hi4);
结果为:
true
false(地址改变了)
四、逻辑运算符
1.1 运算符
!(逻辑非)、&&(短路与)、||(短路或)
1.2 表达式
以判断是否为闰年为例:
条件:
1.year可以整除100
2.year可以整除4且不能整除100
||(选择其一,就可以的关系)==》year可以整除100 || year可以整除4且不能整除100
&&(两个都要满足才可以的关系)==》year可以整除4且不能整除100
代码 ===》
//获得一个年份
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个年份:");
int year=scan.nextInt();
//判断是不是闰年
if((year % 4 == 0 && year % 100 != 0 || year % 100 == 0)){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"不是闰年");
}
五、条件运算符
1.1 运算符
结果为布尔型的表达式?表达式1:表达式2;
1.2 表达式
以判断是否为闰年为例:
上面的代码可简化为:
//获得一个年份
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个年份:");
int year=scan.nextInt();
//判断是不是闰年
String judge=(year % 4 == 0 && year % 100 != 0) || (year % 100 == 0)?"是闰年":"不是闰年";
System.out.println(judge);
出现不准确,不规范,有错误的地方,望及时告诉我,谢谢啦!