使用Java语言深入理解程序逻辑——表达式和运算符
一.运算符 1.定义:就是用于计算的符号。 2.分类: (1)按功能分为:赋值运算符、算术运算符、关系运算符和逻辑运算符 (2)按操作数的个数分类:单目运算符、双目运算符、三目运算符 例子:int sum = 120 + 34、(100 + 96) / 2、num % 2、score > 60 3.注意: (1)运算符的目:运算符能连接操作数的个数称为运算符的目 (2)运算符的优先级:优先级是指在一个表达式中出现多个不同运算符,在进行计算时运算符执行的先后次序。 (3)运算符的结合方向:结合方向又称为结合性,指运算的结合方向。 4.赋值运算符——“=” 例子:int english = 92;, int a,b,c; //同时声明三个变量 a = b = c = 1; //自右向左赋值 结合性:自右向左 5.算术运算符——“+,-,*,/”
例子: int num1 = 5; int num2 = 3; int result; result = num1+num2; // 加法运算 System.out.printf("%d + %d的结果是 %d ",num1,num2,result); result = num1-num2; // 减法运算 System.out.printf("%d - %d的结果是 %d ",num1,num2,result); result = num1*num2; // 乘法运算 System.out.printf("%d * %d 的结果是 %d ",num1,num2,result); result = num1/num2; // 除法运算 System.out.printf("%d / %d的结果是 %d ",num1,num2,result); result = num1%num2; // 求余运算 System.out.printf("%d %% %d的结果是 %d ",num1,num2,result);
6.关系运算符——“>,<,=>=,<=,==,!=”
例子: int num1 = 88; int num2 = 100; boolean result; result = num1>num2; System.out.printf("%d > %d的结果为:%b ",num1,num2,result); result = num1>=num2; System.out.printf("%d >= %d的结果为:%b ",num1,num2,result); result = num1<num2; System.out.printf("%d < %d的结果为:%b ",num1,num2,result); result = num1==num2; System.out.printf("%d == %d的结果为:%b ",num1,num2,result); result = num1!=num2; System.out.printf("%d != %d的结果为:%b ",num1,num2,result);
7.逻辑运算符——“&&,||,! ”
例子: 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);
8.三目运算符 语法:布尔表达式?表达式1:表达式2 注意:条件表达式的结果由布尔表达式决定,如果布尔表达式的值为true,则返回表达1的值,否则返回表达式2的值。 例子: Scanner sc = new Scanner(System.in); System.out.println("请输入您的年龄"); int age = sc.nextInt(); System.out.println(age>=18?"成年":"未成年");
9.运算符的优先级
二.数据类型转换 1.数据类型转换:
2.自动转换:
3.强制转换: 强制类型转换可以将大数据类型转化为小数据类型(如将double转换为int),在转换过程中会丢失数据的精度。 语法:(目标数据类型) 表达式; 例子: public class TypeTran { public static void main(String[] args) { int r = 5; int round = (int)(2*3.14*r);//求圆的周长,强制类型转换后会丢失精度 System.out.println("半径为"+r+"的圆的周长为:"+round); } }
