Java的运算操作
创始人
2024-05-27 06:09:31
0

个人主页:平行线也会相交
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创
收录于专栏【JavaSE_primary】
在这里插入图片描述

文章目录

    • 算术运算符
    • 增量运算符
      • +=
        • 注意
    • 自增自减运算符
    • 关系运算符
    • 逻辑运算符
      • 逻辑与&&
      • 逻辑或||
      • 逻辑非!
      • 短路求值
    • 位运算符
      • 按位与&
      • 按位或|
      • 按位取反~
      • 按位异或^
    • 移位运算符
      • 左移<<
      • 右移>>
    • 条件运算符

在Java中,根据我们的需要,有多种类型的操作符可以对操作数进行运算,不仅仅只有算术运算符(加减乘除)这一种运算符,患有其它类型的运算符。
Java运算符有以下几种:
**算术运算符(即+-×/)、增量运算符(+= -+ *= %=)、自增自减运算符、关系运算符(><==)、逻辑运算符、位运算符、移位运算符、条件运算符。
下面我们就一一来介绍这几种运算符。

算术运算符

算术运算符无非就是我们最常用的四则运算法则,即加减乘除(+ - * /),还有一种就是%
由于(加减乘除)比较简单,这里我举几个例子一笔带过。

        System.out.println(2*4);System.out.println(4-2);System.out.println(5*3);System.out.println("===========");System.out.println(10/3);System.out.println(10/-3);System.out.println((-10/3));System.out.println(-10/-3);

在这里插入图片描述

  • 当两侧操作数类型不一致时,会向大的提升。
System.out.println(1+0.8);

在这里插入图片描述

请看对于/操作符我这样用可不可以呢?请看:

System.out.println(4/0);

来看运行结果:
在这里插入图片描述
可以看到直接报错了,这是因为在Java中,分母是不可以为0的。

再来看一下%运算符:

        System.out.println(10%3);System.out.println(10%-3);System.out.println(-10%3);System.out.println(-10%-3);

在这里插入图片描述
注意,对于%运算符两边的操作数是可以有浮点数出现的,这一点和C语言的确是不一样的(C语言中的%运算符两边的操作数是坚决不能出现浮点数的)。所以,%不仅可以对整型进行取模,也可以对double类型进行取模。
请看:
在这里插入图片描述
在这里插入图片描述

增量运算符

+=

我们先来看一个简单的。

        int a = 10;int b = 10;int c = 10;int d = 10;int e = 8;a += 5;System.out.println( a);b -= 3;System.out.println(b);c *= 2;System.out.println(c);d /= 2;System.out.println(d);e %= 3;System.out.println(e);

在这里插入图片描述

注意

我们来看看这种写法:
在这里插入图片描述
我们可以看到会出错。
那这样写呢?

在这里插入图片描述
这样写就不会出错了。可以正常运行。
在这里插入图片描述
这里并不会报错,这也时该运算符特殊的地方:该运算符会帮我们进行类型转换

自增自减运算符

在Java中,对于++和--运算符虽然与C语言的++和--差不多,但是还是有一些细节不一样的地方

        int a = 10;--a;System.out.println(a);

在这里插入图片描述
这一点和C语言是一样的。
但是注意这里,请看:

        int a = 10;int b = a--;System.out.println(b);

这是后置减减的a赋值给了b
在这里插入图片描述

结果b的值是10.
但是如果是前置减减的a赋值给了b呢?

        int a = 10;int b = --a;System.out.println(a);

在这里插入图片描述
我们会发现结果是9。
但是注意这里,请看:

        int a = 10;a = a--;System.out.println(a);

如果按照C语言来的话,这里结果应该是9。但是请看结果:
在这里插入图片描述
看,发现结果竟然是10,这也是C语言和Java不一样的地方,记住就好,只不过两种语言处理的方式不同罢了。
还有一点:++和--运算符是用来操作变量的,而不是用来操作常量的。

关系运算符

在Java中,关系运算符主要有6个:== != <= >= < >,其运算结果只有俩个,要么是true,要么是false。

        int a = 10;int b = 20;System.out.println(a>b);System.out.println(a=b);

在这里插入图片描述
当然,需要判断的是,当需要多次判断的时候,我们是不可以连这些的,比如:4 < a < 6

逻辑运算符

逻辑运算符主要是三种:&& || !,其运算结果均为boolean类型。

逻辑与&&

语法:表达式1 && 表达式2.并且左右表达式必须是boolean类型的结果,只有左右表达式同时为真时,结果才为真,否则就是假

举个例子:

        int a = 10;int b = 20;System.out.println(a == 10 && b == 20);System.out.println(a > 10 && b < 20);

在这里插入图片描述

逻辑或||

逻辑或:
语法规则:表达式1 || 表达式2.并且左右表达式必须是boolean类型的结果,只有左右表达式只要有一个是真的,结果就是真的,同时为假结果才为假

        int a = 10;int b = 20;System.out.println(a == 10 || b == 20);System.out.println(a == 10 || b < 20);System.out.println(a == 100 || b == 200);

在这里插入图片描述

逻辑非!

逻辑非的语法规则:!表达式。非真即假,非假即真。

        int a = 1;System.out.println(!(a == 1));System.out.println(!(a != 1));

在这里插入图片描述

短路求值

我们先来看一段代码吧:

    public static void main(String[] args) {//短路求值System.out.println(10 > 20 && 10/0 == 0);System.out.println(10 < 20 || 10/0 == 0);}

运行一下:
在这里插入图片描述
我们发现程序成功运行起来了。但是我们已经知道10/0这个表达式,会出现异常而导致程序报错,但是程序成功的运行了起来。这个就是短路求值的作用。
短路求值规则,
对于&&而言:如果左侧表达式为false,则整个表达式的结果一定为false,右侧的表达式不需要进行运算。
对于||而言:如果左侧表达式为true,则整个表达式的结果一定为true,右侧的表达式不需要进行运算。

对于&和|:如果表达式结果为boolean时,也表示逻辑运算,但与&&和||相比,它们不支持短路求值。

        System.out.println(10 < 20 & 1 > 0);System.out.println(10 < 20 | 1 >0);

在这里插入图片描述
注意了请看下段代码

          System.out.println(10 > 20 & 10/0 == 0);System.out.println(10 < 20 | 10/0 ==0);


我们发现程序会进行报错,说明了10/0 == 0在这里依然会被执行。
所以建议当我们想用逻辑与和逻辑或的时候,不要用&和|,直接用&&和||就好了,这样容易区分(因为&和|也是位运算的符号)。

位运算符

位运算就是按照二进制位进行每一位的运算。
位运算符主要有4个:& | ~ ^

按位与&

规则:两个二进制位只有相同时才为1,其余情况均为0

        int a = 10;int b = 20;System.out.println(a & b);

在这里插入图片描述
在这里插入图片描述

按位或|

        int a = 10;int b = 20;System.out.println(a | b);

在这里插入图片描述
注意:当&和|的操作数为整数(int,short,long,byte)的时候,表示按位运算,当操作数为boolean的时候,表示逻辑运算。

按位取反~

按位取反规则该位为0则改为1,该位为1则改为0。
这里依然有几点需要大家注意

1.0x前缀的数字为十六进制数字,十六进制可以看成时二进制的简化表示方式,一个十六进制数字对应4个二进制位。
2.printf能够格式化输出内容,%x表示按照十六进制输出。

       int c = 0xf;System.out.printf("%x\n",~a);

在这里插入图片描述

按位异或^

规则:如果两个数字的二进制位相同,则表示结果为0,相异则结果为1.()即相同为0,不同为1。相同的两个数之间进行异或,结果为0。
举个例子:

        int a = 0x1;int b=0x2;System.out.printf("%x\n",a^b);

在这里插入图片描述

移位运算符

移位运算符有三个:<< >> >>>,且均为二元运算符,按照二进制比特位进行运算。

左移<<

规则:最左侧不要了,最有侧补0.
例如:

        int a = 0x10;System.out.printf("%x\n",a<<1);

在这里插入图片描述
注意:最终结果是按照十六进制来进行运算的;另一方面,向左移位的时候,丢弃的是符号位,因此正数左移可能会变成负数;左移统一在右边补0。

右移>>

右移:最右侧不要了,最左侧补符号位(正数补0,负数补1)。

        int a = 0x10;System.out.printf("%x\n",a>>1);

在这里插入图片描述
还有一种右移是无符号右移不管符号位是1还是0,统一补0。
还是来举个例子:

        int b = -1;System.out.println(b >> 1);System.out.println(b >>> 1);

在这里插入图片描述
在这里插入图片描述
分割线------------------------------------------------------------------------------------------------
在这里插入图片描述

条件运算符

条件运算符就一个:
表达式1?表达式2:表达式3

当表达式1的结果为true是,整个表达式的值为表达式2的值,当表达式1的结果为false是,整个表达式的值为表达式3的值。
这是Java中唯一的一个三目运算符。

        int a = 10;int b = 20;int max = a>b?a:b;System.out.println(max);

在这里插入图片描述
注意:表达式不能单独存在,其结果必须要被使用。比如:
在这里插入图片描述
以上就是Java运算符的一些操作,就到这里吧。
再见啦!!!
在这里插入图片描述

相关内容

热门资讯

Python|位运算|数组|动... 目录 1、只出现一次的数字(位运算,数组) 示例 选项代...
张岱的人物生平 张岱的人物生平张岱(414年-484年),字景山,吴郡吴县(今江苏苏州)人。南朝齐大臣。祖父张敞,东...
西游西后传演员女人物 西游西后传演员女人物西游西后传演员女人物 孙悟空 六小龄童 唐僧 徐少华 ...
名人故事中贾岛作诗内容简介 名人故事中贾岛作诗内容简介有一次,贾岛骑驴闯了官道.他正琢磨着一句诗,名叫《题李凝幽居》全诗如下:闲...
和男朋友一起优秀的文案? 和男朋友一起优秀的文案?1.希望是惟一所有的人都共同享有的好处;一无所有的人,仍拥有希望。2.生活,...
戴玉手镯的好处 戴玉手镯好还是... 戴玉手镯的好处 戴玉手镯好还是碧玺好 女人戴玉?戴玉好还是碧玺好点佩戴手镯,以和田玉手镯为佳!相嫌滑...
依然什么意思? 依然什么意思?依然(汉语词语)依然,汉语词汇。拼音:yī    rán基本解释:副词,指照往常、依旧...
高尔基的散文诗 高尔基的散文诗《海燕》、《大学》、《母亲》、《童年》这些都是比较出名的一些代表作。
心在飞扬作者简介 心在飞扬作者简介心在飞扬作者简介如下。根据相关公开资料查询,心在飞扬是一位优秀的小说作者,他的小说作...
卡什坦卡的故事赏析? 卡什坦卡的故事赏析?讲了一只小狗的故事, 我也是近来才读到这篇小说. 作家对动物的拟人描写真是惟妙...
林绍涛为简艾拿绿豆糕是哪一集 林绍涛为简艾拿绿豆糕是哪一集第三十二集。 贾宽认为是阎帅间接导致刘映霞住了院,第二天上班,他按捺不...
小爱同学是女生吗小安同学什么意... 小爱同学是女生吗小安同学什么意思 小爱同学,小安同学说你是女生。小安是男的。
内分泌失调导致脸上长斑,怎么调... 内分泌失调导致脸上长斑,怎么调理内分泌失调导致脸上长斑,怎么调理先调理内分泌,去看中医吧,另外用好的...
《魔幻仙境》刺客,骑士人物属性... 《魔幻仙境》刺客,骑士人物属性加点魔幻仙境骑士2功1体质
很喜欢她,该怎么办? 很喜欢她,该怎么办?太冷静了!! 太理智了!爱情是需要冲劲的~不要考虑着考虑那~否则缘...
言情小说作家 言情小说作家我比较喜欢匪我思存的,很虐,很悲,还有梅子黄时雨,笙离,叶萱,还有安宁的《温暖的玄》 小...
两个以名人的名字命名的风景名胜... 两个以名人的名字命名的风景名胜?快太白楼,李白。尚志公园,赵尚志。
幼儿教育的代表人物及其著作 幼儿教育的代表人物及其著作卡尔威特的《卡尔威特的教育》,小卡尔威特,他儿子成了天才后写的《小卡尔威特...
海贼王中为什么说路飞打凯多靠霸... 海贼王中为什么说路飞打凯多靠霸气升级?凯多是靠霸气升级吗?因为之前刚到时确实打不过人家因为路飞的实力...
运气不好拜财神有用吗运气不好拜... 运气不好拜财神有用吗运气不好拜财神有没有用1、运气不好拜财神有用。2、拜财神上香前先点蜡烛,照亮人神...