Java运算符

目录

一、赋值运算符

例、使用赋值运算符同时为两个变量赋值

二、算术运算符

例、使用算术运算符模拟计算器

三、自增和自减运算符

 四、比较运算符

例、使用不同的比较运算符判断两个整数的关系

五、逻辑运算符

例、使用不同的比较运算符判断两个整数的关系

六、位移运算符

七、三元运算符

八、运算符优先级


运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。Java中提供了丰富的运算符,如赋值运算符、算术运算符、比较运算符等。

一、赋值运算符

赋值运算符以符号“ = ”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方操作数。例如:

int a = 100;

该表达式是将100赋值给变量a。左方的操作数必须是一个变量,而右方的操作数则可以是任何表达式,包括变量(如a、number)、常量(如123、“book”)、有效表达式(如45*12)。

由于赋值运算符“ = ”处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的“ = ”运算符,会从最右方的“ = ”开始处理。

例、使用赋值运算符同时为两个变量赋值

在项目中创建类 Eval,在主方法中定义变量,使用赋值运算符为变量赋值。


public class Eval {                        //创建类
   public static void main(String[] args) {//主方法
		int a,b,c;                         //声明int型变量a、b、c
		a = 15;                            //将15赋值给变量a
		c =b = a + 4;                      //将a与4的值赋值给变量b,然后再赋值给变量c
		System.out.println("c值为:"+c);   //将变量c的值输出
		System.out.println("b值为:"+b);   //将变量b的值输出
	}

}


运行结果如下:

c值为:19
b值为:19

在Java 中可以把赋值运算符连在一起使用。如:
x゠y=z゠5;
在这个语句中,变量x、y、z都得到同样的值 5。但在实际开发中建议开发者分开赋值,这样可以让代码的层次更清晰。

二、算术运算符

Java中的算术运算符主要有+ (加)、. (减)、* (乘)、/(除)、%(求余),它们都是二元运算符,Java中算术运算符的功能及使用方式如表所示。

Java算术运算符
运算符说明实例结果
+12.45f + 1527.45
-4.56-0.164.4
*5L*12.45f62.25
/7/23
%取余数12%102

其中,“ +  ”和“ - ”运算符还可以作为数值的正负符号,如+5、-7。

在进行除法运算时,0不能做除数。例如,对于语句“int a = 5 / 0;”,系统会抛出ArithmeticException异常。

下面通过一个小程序来介绍算术运算符的使用方法。

例、使用算术运算符模拟计算器

创建AtmeicoPeator类,让用户输入两个数字,分别用5种运算符对这两个数字进行计算。

import java.util.Scanner;
public final class ArithmeticOperator {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);                      //创建扫描器,获取控制台输入的值
    	System.out.println("请输入两个数字,用空格隔开(num1 num2):");//输出提示
		double num1 = sc.nextDouble();                            //记录输入的第一个数字
		double num2 = sc.nextDouble();                            //记录输入的第二个数字
		System.out.println("num1+num2的和为:"+(num1+num2));       //计算和
		System.out.println("num1-num2的差为:"+(num1-num2));       //计算差
		System.out.println("num1*num2的积为:"+(num1*num2));       //计算积
		System.out.println("num1/num2的商为:"+(num1/num2));       //计算商
		System.out.println("num1%num2的余数为:"+(num1%num2));     //计算余数
		sc.close();                                               //关闭扫描器
		
	}

}

运行结果如图所示,图中23和15为用户在控制台中输入的值。

三、自增和自减运算符

自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、 自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。例如:

++a(--a)   //表示在使用变量a之前,先使a的值加(减)1
a++(a--)   //表示在使用变量a之后,使a的值加(减)1

粗略地分析,“++a”与“--a”的作用都相当于a=a+1。假设a=4,则:

b = ++a;   //先将a的值加1,然后赋给b,此时a值为5、b值为5

 再看另一个语法,同样假设a=4,则:

b=a++;    //先将a的值赋值给b,再将a的值变为5,此时a值为5,b值为4

 四、比较运算符

比较运算符属手二元运算符,用于程序中的变量之间、 变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算结果为 true, 否则为 false。所有比较运算符通常作为判断的依据用在条件语句中。比较运算符共有 6个,如表所示

比较运算符
运算符作用举例操作数据结果
>比较左方是否大于右方'a'>'b'整型、浮点型、字符型false
<比较左方是否小于右方156<456整数、浮点型、字符型true
==比较左方是否等于右方'c'=='c'基本数据类型、引用型true
>=比较左方是否大于等于右方479>=426整数、浮点型、字符型true
<=比较左方是否小于等于右方12.45<=45.5整数、浮点型、字符型true
!=比较左方是否不等于右方'y'!='t'基本数据类型、引用型true

例、使用不同的比较运算符判断两个整数的关系

在项目中创建类Compare,在主方法中创建整型变量,使用比较运算符对变量进行比较运算,将运算后的结果输出。

public class Compare {//创建类
	public static void main(String[] args) {//主方法
		int number1 = 4;//声明int型变量number1
		int number2 =5;//声明int型变量number2
		//依此将变量number1与变量number2的比较结果输出
		System.out.println("number1>number2的返回值为:"+(number1>number2));
		System.out.println("number1<number2的返回值为:"+(number1<number2));
		System.out.println("number1==number2的返回值为:"+(number1==number2));
		System.out.println("number1!=number2的返回值为:"+(number1!=number2));
		System.out.println("number1>=number2的返回值为:"+(number1>=number2));
		System.out.println("number1<=number2的返回值为:"+(number1<=number2));
		
		
	}

}

运行结果如下:

number1>number2的返回值为:false
number1<number2的返回值为:true
number1==number2的返回值为:false
number1!=number2的返回值为:true
number1>=number2的返回值为:false
number1<=number2的返回值为:true

五、逻辑运算符

返回类型为布尔类型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算中,除了“ !”是一元运算符,其他都是二元运算符。

逻辑运算符的用法和含义:

逻辑运算符
运算符含义用法结合方向
&&、&逻辑与op1 && op2从左到右
||逻辑或op1 || op2从左到右
逻辑非op1 ! op2从右到左

结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。

用逻辑运算符进行逻辑运算时,结果如下表所示:

使用逻辑运算符进行逻辑运算
表达式1表达式2表达式1 && 表达式2表达式1 || 表达式2 !表达式1
tureturetureturefalse
turefalsefalseturefalse
falsefalsefalsefalseture
falseturefalsetureture

逻辑与,逻辑或,逻辑非

&&:两者都为真,结果才是真

||:只要有一者为真,结果就是真

!:非真即假,非假即真

例、使用不同的比较运算符判断两个整数的关系

在项目中创建类Calculation,在主方法中创建3个整数,分别记录男生人数,女生人数和总人数,使用逻辑运算符来判断“ 男生人数大于女生人数并且总人数大于30人 ”和“ 男生人数大于女生人数或者总人数大于30人”这两种情况是否存在。


public final class Calculation {//创建类
   public static void main(String[] args) {//主方法
		int boys = 15;//男生人数
		int girls = 17;//女生人数
		int totle = boys + girls;//总人数
		boolean result1 = ((boys>girls)&&(totle>30));//男生人数大于女生人数,且总人数大于30
		boolean result2 = ((boys>girls)||(totle>30));//男生人数大于女生人数,或总人数大于30
		System.out.println("男生人数大于女生人数并且总人数大于30:"+result1);//输出结果
		System.out.println("男生人数大于女生人数或者总人数大于30:"+result2);
	}

}

运行结果如下:

男生人数大于女生人数并且总人数大于30:false
男生人数大于女生人数或者总人数大于30:true

六、位移运算符

位运算符除“按位与”和“按位或” 运算符外,其他只能用于处理整数的操作数,包括 byte、short、char、int 和long 等数据类型。位运算是完全针对位方面的操作。整型数据在内存中以二进制的形式表示,如 int 型变量7 的二进制表示是 00000000 00000000 00000000 00000111。
 

左边最高位是符号位,最高位是 0 表示正数,若为1则表示负数。负数采用补码表示,如-8的二进制表示为 111111111 111111111 1111111 11111000。 这样就可以对整型数据进行按位运算。

按位与,按位或,按位取反,按位异或

&:两者都为1,结果才是1

| :只要有一者为1,结果就是1

~:1变0,0变1

^:两者相同即为0,不同为1

位移操作:

<<:整体左移,空位补零,溢出去掉

>>:整体右移,正数补零,负数补1,溢出去掉

无符号右移:整体右移,空位补零,溢出去掉

0为正,1为负

七、三元运算符

三元运算符的使用格式为:

条件式 ? 值1 :值2

三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2。例如:

boolean b = 20 < 45 ?true:false;

A? B: C

A这个条件判断为真输出B这个结果,为假输出C这个结果

八、运算符优先级

Java中的表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常,优先级由高到低的顺序依此是:

增量和减量运算

算术运算

比较运算

逻辑运算

赋值运算

如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先处理。

运算符的优先级
优先级描述运算符
1圆括号( )
2正负号+、-
3一元运算符++、--
4乘除*、/、%
5加减+、-
6位移运算符>>、>>>、<<
7比较大小<、>、>=、<=
8比较是否相等

==、!=

9按位运算符&
10按位异或运算^
11按位或运算

|

12逻辑与运算符&&
13逻辑或运算符

||

14三元运算符?:
15赋值运算符=

在编写程序时尽量使用圆括号来指定运算次序,以免产生错误的运算顺序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只奶球.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值