java运算符或,运算符Java

  java运算符或,运算符Java

  00-1010 1.什么是运营商?1.1 33601.2常用运算符概述1.3表达式1.3 . 1 1.3 . 2表达式类型的定义2。算术运算符2.1 33602.2基本四则运算符:加减乘除模(-*/%)2.3增量运算符(=-=*=%=……)2.4自增/自减运算符(,)3360逻辑NOT表示负4.4短路求值5 .按位运算符5.1按位与5.2按位或5.3按位异或5.4按位求反~6。移位操作6.1左移6.2右移6.3无符号右移7。条件运算符8。操作员优先级

  

目录

 

  00-1010操作常量和变量的符号程序在操作数据时使用运算符。

  

1. 运算符是什么?

 

  

1.1 定义:

 

  00-1010用运算符连接常数或变量的公式

  00-1010表达式的类型是表达式运算结果的数据类型。

  

1.2 常见运算符的概述

 

  

1.3 表达式

 

  00-1010注释3360

  /:除法运算符,用于获取两个数据相除的

  特性:在Java中,整数除以整数得到整数。

  %:模(余数)运算,以获得两个数据相除的余数

  特点:可以用来判断两个数能否整除。

  应用程序:

  public class arithmetic operators { public static void main(String[]args){ int a=10;int b=20system . out . println(a b);system . out . println(a-b);system . out . println(a * b);system . out . println(a/b);system . out . println(a % b);}}运行结果如下:3360

  在Java中,小数也可以模数化。

  public class arithmetic operators { public static void main(String[]args){ system . out . println(10% 3);system . out . println(12.5% 2);system . out . println(12.5% 2.0);}}

  错误点1:除数不能为0

  public class arithmetic operators { public static void main(String[]args){ int a=10;int b=0;system . out . println(a/b);}}会报错!在Java中,程序在编译/运行过程中的异常行为称为异常,图中的算术异常。

  错误点2:在java中,负数也可以参与模运算。

  public class arithmetic operators { public static void main(String[]args){ system . out . println(10% 3);//1 system . out . println(10%-3);//1 system . out . println(-10% 3);//-1 System.out

  println(-10%-3);//-1 }}具体计算步骤(小学计算也很容易出错熬):

  

 

  

 

  

2.3 增量运算符(+= -= *= %=…)

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

 

  

public class IncOpr { public static void main(String[] args) { int a = 1; a += 2; System.out.println(a); a -= 1; System.out.println(a); a *= 3; System.out.println(a); a /= 3; System.out.println(a); a %= 3; System.out.println(a); }}

 

  增量运算符会自动帮我们进行数据转换

  

public class IncOpr { public static void main(String[] args) { int a = 99; short s = 0; //s = s + a;//err:报错,short+int->int+int=>int,用short装不下,需要强转 //正确写法1: //s = (short)(s + a); //正确写法2: s += a;//+=会自动帮我们进行类型转换 System.out.println(a);//99 }}

 

  

 

  

2.4 自增/自减运算符(++,–)

++:自增1

 

  – :自减1

  单独使用:放在变量前或后结果一样参与运算:在变量前,先自增(自减) ,再进行其它运算在变量后,先以原值进行其它运算,再自增(自减)举个栗子:

  

public class IncrementdecrementOpr { public static void main(String[] args) { int a = 10; int b = ++a;//a=a+1;b=a;->b=11 a=11 int c = a++;//b=a;a=a+1;->b=10 a=11; System.out.println(b); }}

 

  

3. 关系运算符

常见关系运算符

 

  

 

  关系运算符的运算结果都是布尔(boolean)类型,要么是true,要么是false

  

public class RelationalOpr { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a==b); System.out.println(a!=b); System.out.println(a>=b); System.out.println(a<=b); }}

结果如下:

 

  

 

  注意:当需要多次判断时,不能连着写,比如:3<a<5 ,程序与数学中是有区别的

  

 

  

4. 逻辑运算符

定义:用于判断并且、或者、除非等逻辑关系。逻辑运算符两端一般连接值为布尔类型的关系表达式

 

  

 

  

4.1 &&:逻辑与,并且

也称短路与

 

  布尔表达式1 && 布尔表达式2:两个表达式都为真的时候,整个表达式才是真

  只要有⼀个是假,那整个表达式就是假第⼀个表达式为假,后⾯不执⾏举个栗子:

  

public class LogOperators { public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a == 1 && b == 2); System.out.println(a == 1 && b > 100); System.out.println(a > 100 && b == 2); System.out.println(a > 100 && b > 100); }}

 

  

 

  

4.2 :逻辑或,或者

布尔表达式1 布尔表达式2:只要有⼀个是真,整个表达式就是真

 

  布尔表达式1为真,不执⾏布尔表达式2布尔表达式1为假,会继续布尔表达式2举个栗子:

  

public class LogOperators { public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a == 1 b == 2); System.out.println(a == 1 b > 100); System.out.println(a > 100 b == 2); System.out.println(a > 100 b > 100); }}

 

  

 

  

4.3 !:逻辑非,表示否定

语法规则:!表达式

 

  真变假,假变真。

  举个栗子:

  

public class LogOperators { public static void main(String[] args) { int a = 1; System.out.println(!(a==1)); System.out.println(!(a!=1)); }}

 

  

 

  

4.4 短路求值

&&和遵循短路求值的规则

 

  

System.out.println(10 > 20 && 10 / 0 == 0); // 打印 falseSystem.out.println(10 < 20 10 / 0 == 0); // 打印 true

我们都知道,计算10 / 0会导致程序抛出异常.但是上面的代码却能正常运行,说明10 / 0并没有真正被求值.

 

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

  

System.out.println(10 > 20 & 10 / 0 == 0); // 程序抛出异常System.out.println(10 < 20 10 / 0 == 0); // 程序抛出异常

 

  

5. 位操作符

如果位操作符,左右两边不是布尔表达式,那么他就代表位运算,且位运算操作的是二进制位

 

  

 

  

5.1 按位与&

对应位上有0就是0,对应位都是1的时候,这⼀位运算下来的结果就是1

 

  

 

  

 

  

5.2 按位或

对应位上有1,就是1

 

  

 

  

 

  

5.3 按位异或

不⼀样的位上进⾏或,⼀样的位上是0

 

  推论:哪⼀位上是1,那么这⼀位置上就不同

  

 

  

 

  

5.4 按位取反~

0变1,1变0

 

  

 

  

int a = 0x0000000f;System.out.printf("%xn", ~a);//fffffff0⼗六进制:1 2 3 4 5 6 7 8 9 A B C D E F0000 0000 0000 0000 0000 0000 0000 11111111 1111 1111 1111 1111 1111 1111 0000 ~ f f f f f f f 0

 

  

6. 移位运算

移动的是二进制位

 

  

 

  

6.1 左移<<

最左侧位不要了,最右侧补0

 

  用法举例:

  

public class shftOperation { public static void main(String[] args) { int a = 0x10; System.out.printf("%xn",a << 1); }}

 

  

 

  

6.2 右移>>

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

 

  用法举例:

  

public class shftOperation { public static void main(String[] args) { int a = 0x10; System.out.printf("%xn",a >> 1); }}

 

  注意:没有⽆符号数左移,因为第⼀位是符号位,移的话把符号位移⾛了

  

 

  

6.3 无符号右移>>>

最右侧位不要了,最左侧补0

 

  用法举例:

  

public class shftOperation { public static void main(String[] args) { int a = 0xffffffff; System.out.printf("%xn",a >>> 1);//7fffffff }}

 

  

7. 条件运算符

语法格式:表达式1?表达式2:表达式3

 

  如果表达式1为真,执⾏表达式2,否则执⾏表达式3

  要么返回表达式2的结果,要么返回表达式3的结果,所以需要变量来接收

  注意:表达式1必须是一个布尔表达式

  用法举例:

  

public class CondOpr { public static void main(String[] args) { int a = 10; int b = 20; int c = a>b?a:b; System.out.println(c);//20 }}

 

  

8.运算符的优先级

就一句话:不确定的话,就加括号!

 

  在Java中,对于运算符的优先级考察不多,不像C语言那样。

  到此,对于Java中运算符的讲解已经完毕。

  运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可

  

public class Swap {    public static void main(String[] args) {        System.out.println(3*4+1);        System.out.println(3*(4+1));    }}

到此这篇关于Java运算符的文章就介绍到这了,更多相关Java运算符内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: