1.运算符
Java 语言中的运算符 按功能分为:赋值运算符、算术运算符、关系运算符和逻辑运算符
按操作数的个数分类:单目运算符、双目运算符、三目运算符
功能:
- 赋值运算符 =
- 算术运算符 + - * / % ++(自增) --(自减)
- 关系运算符 > >= < <= == !=(不等于)
- 逻辑运算符 &&(与) ||(或) !(非)
示例1:
int num1 = 5;
int num2 = 3;
int result;
result = num1+num2; // 加法运算
System.out.printf("%d + %d的结果是 %d\n",num1,num2,result);
result = num1-num2; // 减法运算
System.out.printf("%d - %d的结果是 %d\n",num1,num2,result);
result = num1*num2; // 乘法运算
System.out.printf("%d * %d 的结果是 %d\n",num1,num2,result);
result = num1/num2; // 除法运算
System.out.printf("%d / %d的结果是 %d\n",num1,num2,result);
result = num1%num2; // 求余运算
System.out.printf("%d %% %d的结果是 %d\n",num1,num2,result);
示例2:
int a = 5;
int b = ++a;
变量a、b 的值均为6
因为int a = 5;
a = a+1;
int b = a;
示例3:
int num1 = 88;
int num2 = 100;
boolean result;
result = num1>num2;
System.out.printf("%d > %d的结果为:%b\n",num1,num2,result);
result = num1>=num2;
System.out.printf("%d >= %d的结果为:%b\n",num1,num2,result);
result = num1<num2;
System.out.printf("%d < %d的结果为:%b\n",num1,num2,result);
result = num1==num2;
System.out.printf("%d == %d的结果为:%b\n",num1,num2,result);
result = num1!=num2;
System.out.printf("%d != %d的结果为:%b\n",num1,num2,result);
示例4:
int degree, workyear;
degree = 3; //degree 1代表本科,2代表硕士,3代表博士
workyear = 3;
boolean result=(degree>=2)&&(workyear>=2);
System.out.println("博士并且工作3年的入职评判结果为:"+result);
degree = 2;
workyear = 1;
result = (degree >= 2) && (workyear >= 2);
System.out.println ("硕士并且工作1年的入职评判结果为:" + result);
degree = 1;
workyear = 1;
result = (degree >= 2) && (workyear >= 2);
System.out.println("本科并且工作1年的入职评判结果为:" + result);
补充: 在&& 运算中,如果第一个操作数为假,无论第二个操作数的值是什么,结果均为假。
在|| 运算中,如果第一个操作数为真,无论第二个操作数的值是什么,运算的结果均为真
操作数
- 单目运算符
- 双目运算符
- 三目运算符
三目运算符语法:布尔表达式?表达式1:表达式2
a>1?"结果1":"结果2"
条件表达式的结果由布尔表达式决定,如果布尔表达式的值为true,则返回表达1的值,否则返回表达式2的值。
示例:
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄");
int age = sc.nextInt();
System.out.println(age>=18?"成年":"未成年");
2.运算符结合性和优先级
优先级 | 运算符 | 结合性 |
1 | () | 从左到右 |
2 | !、++、-- | 从右到左 |
3 | * 、/、 % | 从左到右 |
4 | + 、- | 从左到右 |
5 | > 、<、 >=、 <= | 从左到右 |
6 | ==、 != | 从左到右 |
7 | && | 从左到右 |
8 | || | 从左到右 |
9 | = 、+=、 -=、 *=、 /=、 %= | 从右到左 |
注意:条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。 JAVA中条件运算表达式中的关系表达式值的类型必须为布尔类型,只能是true或false。 条件运算符的结合性是右结合性。
3.数据类型转换
合法转换图——实箭头合法
示例:
int a3 = 10;
long b3 = 1000;
long result3 = a3 + b3;
System.out.println(result3);
byte a4 = 10;
char b4 = 'a'; //字母a对应为97
//a4、b4将转换为int类型,最终运算的结果为int类型
int result4 = a4 + b4;
System.out.println(result4);
4.强制类型转换
转换成哪种类型就在前面加括号说明类型
小数转成整数,会丢失精度(正确率),不根据四舍五入
示例:求半径为5的圆的周长,结果取整数。
public class TypeTran {
public static void main(String[] args) {
int r = 5;
int round = (int)(2*3.14*r);//求圆的周长,强制类型转换后会丢失精度
System.out.println("半径为"+r+"的圆的周长为:"+round);
}
}
重点:
-
在Java中,运算符按功能分为:赋值运算符、算术运算符、关系运算符和逻辑运算符。
-
关系运算符运算后的结果为boolean类型。
-
逻辑运算符可以连接多个关系运算符,它的操作数与结果均为boolean类型。
-
数据类型转换分为自动类型转换和强制类型转换。
-
数据类型转换是为方便不同类型的数据之间进行计算,发生自动类型转换有一定的条件。