JAVA的运算符与表达式

Posted 小陈的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA的运算符与表达式相关的知识,希望对你有一定的参考价值。

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类型。

  • 数据类型转换分为自动类型转换和强制类型转换。

  • 数据类型转换是为方便不同类型的数据之间进行计算,发生自动类型转换有一定的条件。

以上是关于JAVA的运算符与表达式的主要内容,如果未能解决你的问题,请参考以下文章

JAVA的运算符与表达式

运算符与表达式

JAVA三目运算符Char类型的输出结果

java基础第四节(表达式与运算符)

java基础第四节(表达式与运算符)

Java应用基础第三章表达式与运算符