Java基础之运算符(java运算符有几种)

  本篇文章为你整理了Java基础之运算符(java运算符有几种)的详细内容,包含有java运算符运算方法 java运算符有几种 java运算符运算方法 java中的运算符号 Java基础之运算符,希望能帮助你了解 Java基础之运算符。

  Java基础之运算符

  目录Java基础之运算符1.1 运算符介绍1.1.1 运算符介绍1.2 算术运算符1.2.1 介绍1.2.2 算术运算符一览表1.2.3 代码演示1.2.4 细节说明1.2.5 面试题1.2.6 小练习1.3 关系运算符(比较运算符)1.3.1 介绍1.3.2 关系运算符一览表1.3.3 案例演示1.3.4 细节说明1.4 逻辑运算符1.4.1 介绍1.4.2 逻辑运算符一览表1.4.3 和 基本规则1.4.4 和 案例演示1.4.5 和 使用区别1.4.6 和 基本规则1.4.7 和 案例演示1.4.8 和 使用区别1.4.8 ! 取反基本规则1.4.9 ! 案例演示1.4.10 ^ 基本规则1.4.11 练习题 写出输出结果1.5 赋值运算符1.5.1介绍1.5.2 赋值运算符的分类1.5.3 赋值运算符的特点1.6 三元运算符1.6.1 基本语法1.6.2 使用细节1.7 运算符的优先级

  1.1 运算符介绍

  1.1.1 运算符介绍

  运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等,运算符可分为:

  1)算术运算符

  2)赋值运算符

  3)关系运算符 [比较运算符]

  4)逻辑运算符

  5)位运算符 [需要二进制]

  6)三元运算符

  1.2 算术运算符

  1.2.1 介绍

  算术运算符是对数值类型的变量进行运算的,在Java程序中使用非常多

  1.2.2 算术运算符一览表

  1.2.3 代码演示

  

public class ArithmeticOperator {

 

   * 演示算数运算符的使用

   public static void main(String[] args) {

   System.out.println(10 / 4); //2 两个数都是int类型,结果为int类型

   System.out.println(10.0 / 4); //2.5 有一个为double类型,结果为double类型

   double d = 10 / 4; //10 / 4 为int类型,会自动转换为double类型

   System.out.println(d); //2.0

   // % 取余(取模)

   //在Java中 % 的本质是:a % b = a - a / b * b

   //-10 % 3 = -10 - (-10) / 3 * 3 = -10 + 9 = -1

   //10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1

   //-10 % -3 = -10 - (-10) / (-3) * (-3) = -10 + 9 = -1

   System.out.println(10 % 3); // 1

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

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

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

   // ++的使用

   作为语句独立使用:

   前++ 和 后++ 独立使用时都等价于 i = i + 1;

   int i = 10;

   i++; //自增 等价于 i = i + 1; = i = 11;

   ++i; //自增 等价于 i = i + 1; = i = 12;

   System.out.println("i=" + i); //12

   作为表达式使用:

   前++: ++i 先自增后赋值

   后++: i++ 先赋值后自增

   int j = 8;

   int k = ++ j; //等价于 j = j + 1; k = j;

   int n = j ++; //等价于 n = j; j = j + 1;

   System.out.println("k=" + k + "n=" + n + "j=" + j); // k=9 n=9 j=10

  

 

  1.2.4 细节说明

  对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如: int x = 10 / 3; 结果为3。

  当对一个数取余(取模),可以等价a % b = a - a / b * b ,根据这个公式,我们可以看到取余的一个本质运算。

  当自增当做一个独立语言使用时,不管是++i 还是 i++ 都是一样的,等价于 i = i + 1。

  当自增当做一个表达式使用时,前++: ++i 先自增后赋值;后++: i++ 先赋值后自增

  1.2.5 面试题

  1)面试题一

  int i = 1;

  i = i++;

  System.out.println(i);

  结果为多少?为什么?

  
i = i++; 后++ 先赋值,后自增。这一过程中使用了临时变量来存放i的值

  (1)int temp = i; // temp=1

  (2)i = i + 1; // i=2

  (3)i = temp; // i=1

  所以最后结果为:i = 1

  
i = ++i; 前++ 先自增,后赋值。这一过程中使用了临时变量来存放i的值

  (1)i = i + 1; // i=2

  (2)int temp = i; // temp=2

  (3)i = temp; // i=2

  所以最后结果为:i = 2

  
​ i = i1++; // 先赋值,后自增 i=10,i1=11,i2=20

  ​ i = --i2; // 先自减,后赋值 i2=19,i=19

  2)假如还有 59 天放假,问:合 xx 个星期零 xx 天

  

public class ArithmeticOperatorExercise {

 

   public static void main(String[] args) {

   //假如还有 59 天放假,问:合 xx 个星期零 xx 天

   1)需求:

   假如还有 59 天放假,问:合 xx 个星期零 xx 天

   2)思路分析:

   使用int型变量来存放天数

   一星期有7天

   天数除以7 可得星期数

   天数对7取余 可得零几天

   3)走代码:

   int days = 59;

   int weeks = days / 7;

   int leftDays = days % 7;

   System.out.println(days + "天合" + weeks + "个星期零" + leftDays + "天");

  

 

  3)定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:

  5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。 [234.5]

  

public class ArithmeticOperatorExercise {

 

   public static void main(String[] args) {

   1)需求:

   定义一个变量保存华氏温度,请求出华氏温度对应的摄氏温度。

   2)思路分析:

   定义一个double变量fahrenheit保存华氏温度

   根据公式计算对应的摄氏温度

   定义一个double变量Celsius保存摄氏温度

   3)走代码:

   double fahrenheit = 1234.6;

   double Celsius = 5.0 / 9 * (fahrenheit - 100);

   System.out.println("华氏温度" + fahrenheit + " 对应的摄氏温度="+ Celsius);

  

 

  1.3 关系运算符(比较运算符)

  1.3.1 介绍

  1)关系运算符的结果都是boolean类型,要么是true,要么是false。

  2)关系表达式经常用在if结构的条件或循环结构的条件中。

  1.3.2 关系运算符一览表

  1.3.3 案例演示

  

public class RelationalOperator { 

 

   //编写一个 main 方法

   public static void main(String[] args) {

   int a = 9; // 开发中,不可以使用 a, b

   nt b = 8;

   System.out.println(a //T

   System.out.println(a = b); //T

   System.out.println(a = b); //F

   System.out.println(a //F 第 63页

   System.out.println(a == b); //F

   System.out.println(a != b); //T

   boolean flag = a //T

   System.out.println("flag=" + flag);

  

 

  在开发中不可以使用a、b这种简单的字符来命名变量

  1.3.4 细节说明

  1)关系运算符的结果都是boolean类型,要么是true,要么是false。

  2)关系运算符组成的表达式,我们称为关系表达式。

  3)比较运算符"= ="不能误写成"="。

  1.4 逻辑运算符

  1.4.1 介绍

  用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值。。

  1.4.2 逻辑运算符一览表

  1)短路与 ,短路或 ,取反 !

  2)逻辑与 ,逻辑或 ,逻辑异或 ^

  3)运算规则说明:

  
名称 语法 特点

  短路与 条件1 条件2 当两个同时为true,则结果为true,否则为false。如果条件1为false,则不判断条件2,结果为false

  逻辑与 条件1 条件2 当两个同时为true,则结果为true,否则为false.如果条件1为false,继续判断条件2,结果为false

  1.4.4 和 案例演示

  

public class LogicOperator01 {

 

   public static void main(String[] args) {

   // 短路与 和 逻辑与 演示

   规则: 两个条件都为true,结果为 true,否则为 false

   规则: 两个条件都为true,结果为 true,否则为 false

   // 短路与

   int age =50;

   if(age 20 age 90){

   System.out.println("0k100");

   // 逻辑与

   if(age 20 age 90) {

   System.out.println("ok200");

   //区别

   int a = 4;

   int b = 9;

   //对于 短路与而言,如果第一个条件为 false ,后面的条件不再判断

   //对于 逻辑与而言,如果第一个条件为 false ,后面的条件仍然会判断

   if(a 1 ++b 50) {

   System.out.println("ok300");

   System.out.println("a=" + a + " b=" + b);// a=4 b=10

  

 

  1.4.5 和 使用区别

  
名称 语法 特点

  短路或 条件1 条件2 当两个中有一个为true,则结果为true,否则为false。如果条件1为true,则不判断条件2,结果为true

  逻辑或 条件1 条件2 当两个中有一个为true,则结果为true,否则为false.如果条件1为true,继续判断条件2,结果为true

  1.4.7 和 案例演示

  

public class LogicOperator02 {

 

   public static void main(String[] args) {

   // 短路或 和 逻辑或 演示

   短路或: 两个条件中只要有一个成立,结果为 true,否则为 false

   逻辑或: 两个条件中只要有一个成立,结果为 true,否则为 false

   int age = 50;

   if(age 20 age 30) {

   System.out.println("ok100");

   // 逻辑与使用

   if(age 20 age 30) {

   System.out.println("ok200");

   //区别

   int a = 4;

   int b = 9;

   //对于短路或而言,如果第一个条件为 true ,后面的条件不再判断

   //对于逻辑或而言,如果第一个条件为 true ,后面的条件仍然会判断

   if( a 1 ++b 4) {

   // 可以换成 测试

   System.out.println("ok300");

   System.out.println("a=" + a + " b=" + b); //4 9

  

 

  1.4.8 和 使用区别

  
名称 语法 特点

  ! 非(取反) ! 条件 如果条件本身成立,结果为 false,否则为 true

  1.4.9 ! 案例演示

  

public class InverseOperator {

 

   public static void main(String[] args) {

   // ! 操作是取反 T- F F- T

   System.out.println(60 20); //T

   System.out.println(!(60 20)); //F

   // a^b:逻辑异或,当a和b不同时,则结果为true,否则为false

   boolean b = (10 1) ^ ( 3

   System.out.println("b=" + b); //T

  

 

  1.4.10 ^ 基本规则

  a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

  ^逻辑异或,System.out.println( (4 1) ^ (6 3) );

  1.4.11 练习题 写出输出结果

  
讲解:

  ​ 在程序执行到①的时候,x++是后++,x先与6进行比较,结果为false,x加1之后x=6。

  ​ 逻辑与第一个为false还要继续判断第二个条件。++y是先++,y先加1之后y=6,y与6进行判断,结果为true。

  ​ false true 结果为false,不执行if语句里面的内容。

  
讲解:

  ​ 在程序执行到①的时候,x++是后++,x先与6进行比较,结果为false,x加1之后x=6。

  ​ 短路与第一个条件为false,不用判断第二个条件,y没有进行自加操作y=5。

  
讲解:

  ​ 在程序执行到①的时候,x++是后++,x先与5进行比较,结果为true,x加1之后x=6。

  ​ 逻辑或第一个为true还要继续判断第二个条件。++y是先++,y先加1之后y=6,y与5进行判断,结果为false。

  ​ true false 结果为true,执行if语句里面的内容②,x=11。

  
讲解:

  ​ 在程序执行到①的时候,x++是后++,x先与5进行比较,结果为true,x加1之后x=6。

  ​ 短路或第一个为true不需要继续判断第二个条件。

  ​ 执行if语句里面的内容②,x=11。y没有进行自加操作y=5。

  
讲解:

  ​ 在程序执行到①的时候,z++是后++,z先与46进行比较,结果为true,z加1之后z=47,判断条件二,y被赋值为true。执行z++操作,z=48.

  ​ 在程序执行到②的时候,x=false为false,继续判断第二个条件,++z是先++,z加1之后z=49。然后再执行z++操作,z=50.

  1.5 赋值运算符

  1.5.1介绍

  赋值运算符就是将某个运算后的值,赋给指定的变量

  1.5.2 赋值运算符的分类

  
1)运算顺序从右往左 int num = a + b + c;

  2)赋值运算符的左边 只能是变量,右边可以是变量、表达式、常量

  3)复合赋值运算符等价于下面的效果

  a += 3 等价于 a = a + 3;

  4)复合赋值运算符会进行类型转换

  

 byte b = 3;

 

   b += 2; // 等价于 b = (byte)(b + 2); 如果直接写成b=b+1,编译会报错

   b++; // b = (byte)(b + 1);

  

 

  1.6 三元运算符

  1.6.1 基本语法

  条件表达式 ? 表达式1 : 表达式2;

  运算规则:

  1)如果条件表达式为true,运算后的结果是表达式1;

  2)如果条件表达式为false,运算后的结果是表达式2;

  1.6.2 使用细节

  
public static void main(String[] args) {

   //表达式 1 和表达式 2 要为可以赋给接收变量的类型 //(或可以自动转换/或者强制转换)

   int a = 3;

   int b = 8;

   int c = a b ? (int)1.1 : (int)3.4;//可以

   double d = a b ? a : b + 3;//可以,满足 int - double

  

 

 

  1.7 运算符的优先级

  可以记住口诀:后单四移关,等位逻三赋

  单目运算符,四则运算符,移位运算符,关系运算符,等值运算符,位运算符,逻辑运算符,三目运算符,赋值运算符

  以上就是Java基础之运算符(java运算符有几种)的详细内容,想要了解更多 Java基础之运算符的内容,请持续关注盛行IT软件开发工作室。

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

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