做为java编程员连这 5 类「运算符」都不理解,只能劝你转行了!

作为java编程员,如果说你连运算符都还搞不清楚的话。。。。。。

那么小编只能劝你转行了!

欢迎加入合作群:723288906 免费获取Dubbo、Redis、设计模式、 Netty、zookeeper、Spring cloud、分布式、高并发等架构技术视频资 料,完整架构思维导图,和BATJ面试题及答案。
 

运算符最主要有以下五类运算符:

1.算术运算符

2.关系运算符

3.逻辑运算符

4.赋值运算符

5.条件运算符

我们先来讲第一个

1.算术运算符

关于算术运算符我列了一个表(如下图)

算术运算符又包括一元算术运算符和二算元术运算符。

一元运算符,只有一个操作数。

二元运算符,有两个操作数,运算符在两个操作数之间。

先看看

一元运算符:

"-"取负值;

“++”和“--”用在数值变量之前和之后是不一样的,用在变量前面是先加再执行,用在变量后面是先执行再加。

可能有的同学会说,小编,你这么说我有点懵逼!

那你看仔细了,简单来说

就是“+ +”和“- -”用于数值变量之前,在赋值操作中,先对被“+ +”或被“- -”操作变量值先加1或者先减1。

然后在进行其他的操作,这就是先加再执行。

要是“+ +”和“- -”用于数值变量之后,在赋值操作中,先用被“+ +”或被“- -”的操作变量值进行其他的操作,然后在对其值加1或者减1。

这就是先执行再加。

还不明白的话看看实际代码!

实例代码

(左代码,右输出结果下面都是)

注:算术运算符主要用于数学计算,一般使用数值作为操作数,一元运算符和前后的操作数之间有空格,可能在有些编译器下编译时会出错。

再看看

二元运算符:

加'+',减'-',乘'*',除'/',求余'%'

在算术运算符中“+”,“-”,“*”,“/”完成加减乘除四则运算。

注:为什么a/b等于2,因为int是整数类型,会自动截断小数点后面的数字。

那么我们如何得到我们正确的答案呢?

我们必须进行数据类型的转换(数据类型的转换前前面有一篇文章已经写了)以及用一个float类型的变量接收,比如(float)a/b或者a/(float)b;(如下的代码)

“%”是求两个操作数相除后的余数。(如下代码)

运算规则:

和数学运算基本相同,在算数运算中按照从算,左向右的顺序计先乘、除、求余再加减,不同的是,程序中运算符不可省略,比如在在数学中可写为”y=5x“而程序中必须写为”y=5*x“。当二元运算的两个操作数的数据类型不同时,运算结果的数据类型它和参与运算的操作数的数据类型中精度最高的一致。

关系运算符可以测试两个操作数之间的关系以及大小(但不会改变操作数的值),关系表达式的结果为逻辑类型的boolean(布尔类型)型true/false。

下面我们就来讲讲关系运算符!

2.关系运算符:

关系运算符主要有等于'==',不等于'!=',大于'>',大于等于'>=',小于'<',小于等于'<='(如下图)

各个实例:

等于(==)

如果两边的操作数是数值类型即使他们的数值类型不同只要值相等就返回true,不相等就返回false。

例如:

不等于(!=)

如果两边的操作数是数值类型即使他们的数值类型不同,只要他们的值不相等就返回true,相等返回false。

例如:

大于(>)

如果左操作数大于右操作数则返回true,否则返回false。

注意只支持数值类型的比较。

例如:

大于等于(>=)

如果左操作数大于或者等于右操作数则返回true,否则返回false。

注意只支持数值类型的比较。

例如:

小于(<)

如果做操作数小于右操作数则返回true,否则返回false。

注意只支持数值类型的比较。

例如:

小于等于(<=)

如果做操作数小于或者等于右操作数则返回true,否则返回false。

注意只支持数值类型的比较。

例如:

注:boolean类型只能比较相等和不相等,不能比较大小;>=的意思是大于或等于,两者成立一个即可,结果为true,<=亦如此;判断相等的符号是两个等号,而不是一个等号,这个需要特别小心。实际代码中,数值、变量以及运算结果都可以直接参与比较,只是程序中为了增强可读性,有些时候需要将比较分开进行书写。

比较运算符是程序设计中实现数据比较的基础; 也是很多逻辑实现的基础,在程序逻辑中,经常通过比较一定的条件,来判断后续的程序该如何执行。

接下来是

3.逻辑运算符

逻辑运算是编程中非常重要的一种运算。

逻辑运算符我们主要讲这三个,逻辑非、短路与、短路或。

(如下图)

关于逻辑运算我们要了解下面这5点

1)逻辑运算时用来表示复杂的逻辑关系

我们前面说了关系运算,逻辑运算是在关系运算的基础之上表示更加复杂的逻辑关系的。

比如我们现在要判断一个人的成绩是否在(包括60)60-80之间。就是表示这个人的分数是否大于等于60并且小于80同时满足这两个条件才行。

这里就无法用关系表达式去表达。

关系表达式只能表示一个关系是否成立,它不能表达两个关系是否同时成立。

再比如我这里判断一个字符是否等于大写字母B、或者小写字母b,只要有一个条件成立就可以。这样的关系只用关系运算符同样的是无法表达的,所以我们就要用逻辑运算符。

逻辑运算符就是把两个boolean类型结果的两个表达式结果为true或者false的表达式连接起来。

2)短路与

短路与是由两个&符号表示的。(如下图)

a、b分别是表达式1,表达式2的返回值;

当a、b的返回值都为false时a、b的结果为false;

当a、b中一个为true一个为false时,ab的结果也为false。

只有当a、b的返回值同时为true是ab的结果才是true。

短路与就是表示两个关系是否同时满足的情况,比如说刚刚计算分数是否大于等于60并且小于80的例子,我们就可以用短路与来写成下面这样。

只有当score同时满则这两个条件的时候boolean c才等于true;

3)点短路或

短路或由两条竖线来表示的。(如下图)

当 a、b 返回值其中只要有一个为 true 时,a、b的结果为 true。

只有当a、b的返回值都为 false 时,a、b的结果才为false。

比如说

我们刚说的例子一个字符是否等于大写字母B、或者小写字母b,就可以用短路或来写成这样。

只要d满足其中一个条件,就为true。当d两个条件都不满足时,结果才为fasle。

4)点逻辑非

逻辑非用感叹号“!”表示的(如下图)。

这个非逻辑非很简单跟短路与、短路或不一样的是逻辑非是针对一个操作数进行运算的,比如!a就是求a的非,a以前是false那么!a就是 true 反之以前是true那么!a现在就是false,非的意思就是反过来。

比如我们看代码,

boolean b=!a;

当a是true的时候b就是false,当a是false 的时候b就是true。

下面是一些经典案例:判断某一年是否为闰年。

1.年份能被4整除,但不能被100整除的是闰年。

2.或者年份能被400整除的也是闰年。

System.out.println("请输入年份");//用户输入一个年份

Scanner cin = new Scanner(System.in);//接收用户输入的年份

int year = cin.nextInt();//将接收到的字符串转换为整数类型

if (year % 100 != 0 && year % 4 == 0 || year % 400 == 0) {

//如果(year对100取模不等于0并且year对4取模等于0

//或者year对400取模等于0

System.out.println(year + "是闰年");//就数

} else {

System.out.println(year + "不是闰年");

}

5)点java的短路逻辑原则

对于短路与“&&”,当第一个表达式为false时,将不会测试第二个表达式,所以不管第二个操作数的表达是false还是true,最后的结果一定是false。

对于短路或“||”,当第一个表达式是true时,也不会测试第二个表达式,表达式中只要有一个true,最后的结果就是true。

讲完了逻辑运算符我们来讲

4.赋值运算符:

关于赋值运算我们要了解这两点

一.什么叫赋值运算?

赋值运算就是将等号右边表达式的值计算出来,然后再赋给左边的变量。

比如 int a = 10;就是把10给左边的a。关于这个就不说废话了相信大家都懂。

再给大家说一个赋值表达式本身也有值,什么意思呢?

比如a=10;把10 赋值给了a,a=10这个式子,本来就是有值的,这个值就是等号右边的值也是10。(听着像绕口令)

下面这个例子会更加的直观:

int a,b,c;

a=b=c=10;

首先是先把10赋值给c,然后把c=10赋值给b,最后把b=c=10赋值给a,对就是这样。

做为java编程员连这 5 类「运算符」都不理解,只能劝你转行了!

二.就是赋值运算符有哪些?

(如下表)

就拿+=举个例子,我相信举一个例子,都能明白了。

比如+=号,a += b,就是a=a+b。

再说的通俗点 当a=2 b=3时a=2+3 a的值等于5。

就是这么的so easy!

最后我们来讲

5条件运算符:

一般形式:

表达式1 ?表达式2 :表达式3

是根据 表达式1 来判断执行 表达式2 还是 表达式3 ,如果表达式1的结果是true,就会执行表达式2,如果表达式1的结果是false就会执行表达式3.(如下代码)

条件运算符在一些情况下能够代替小型的if...else语句。(如下代码)

怎么样,这5类运算符你看懂了没?

如果没看懂,建议仔仔细细的再看一遍。

如果还不懂,小编真的只能建议你别做程序员了!

欢迎加入Java高级架构学习交流群:723288906

本群提供免费的学习指导 架构资料 以及免费的解答
不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指 导 进群修改群备注:开发年限-地区-经验 方便架构师解答问题
免费领取架构师全套视频!!!!!!!!

最后留两个练习题:

1.不用中间变量实现两个变量之间的值互换。

什么意思?就是比如定义int a=5;int b=6;不准定义别的变量,只能使用a、b两个变量,最后输出a=6,b=5;

2.从键盘输入一个数字,判断它是奇数还是偶数,用条件运算符来实现,如果是奇数就输出“这个数是奇数”,如果是偶数就输出“这个数是偶数”。

猜你喜欢

转载自blog.csdn.net/xiaoze_JAVA/article/details/88029485