美文网首页
学会Java的运算符

学会Java的运算符

作者: 王一萍o叩丁狼教育 | 来源:发表于2018-08-21 16:47 被阅读0次

1.1. 运算符

对常量和变量进行操作的符号称为运算符

常用运算符:

  • 算术运算符

  • 赋值运算符

  • 比较运算符

  • 逻辑运算符

  • 三元运算符

1.1.1. 算术运算符(掌握)

image.png

用来四则运算的符号,和小学学习的加减乘除无异。

1.1.1.1. 加减乘除余(了解)

对于字符串而言,+符号表示连接操作,任何类型的数据和字符串相连接,结果都是字符串。

public class ArithmeticOperatorsDemo1{

  public static void main(String[] args) {

    // 定义两个变量

    int a = 10;

    int b = 5;

    System.out.println(a + b);//15

    System.out.println(a - b);//5

    System.out.println(a * b);//50

    System.out.println(a / b);//2

    //取模,求余数

    System.out.println(10 % 5);

    System.out.println(10 % 3);

    System.out.println(7 + 8 + "Hello");//15Hello

    System.out.println("Hello" + 7 + 8);//Hello15

    System.out.println(8765 / 1000 * 1000);//8000

    //System.out.println(10 / 0);//除数为0,报错:ArithmeticException

  }

}

1.1.1.2. 自增和自减(掌握)

自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。

自减:-- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。

自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++。

代码 result ++和 ++result,结果都是result变量的值加1。

唯一的区别是:

  • 前置(++result): 表示对result加1之后的结果进行运算,

  • 后置(result++): 表示对result变量加1之前的值(原始值)进行运算。

如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。

public class ArithmeticOperatorsDemo2{

  public static void main(String[] args) {

    int a1 = 5;

    int b1 = ++ a1;

    System.out.println("a1=" + a1 + ",b1=" + b1);//a1=6,b1=6

    int a2 = 5;

    int b2 = a2 ++;

    System.out.println("a2=" + a2 + ",b2=" + b2);//a2=6,b2=5

  }

}

比较权威的解释:

  • ++a表示取a的地址,增加它的内容,然后把值放在寄存器中;

  • a++表示取a的地址,把它的值装入寄存器,然后增加内存中的a的值;

如果不理解什么是寄存器,简单记住,都可以表示当前变量自身加1,区别是:

  • 前置++:先增加后使用

  • 后置++:先使用后增加

1.1.2. 赋值运算符(掌握)

image.png
public class AssigningOperatorDemo {

  public static void main(String[] args) {

    // 把常量17赋值给int类型的变量a

    int a = 17;

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

    // += 把左边和右边的数据进行运算,最后赋值左边变量

    a += 10;// 相当于a = a + 10

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

    short s = 5;

    s += 2; //底层相当于 s = (short) (s + 2)

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

  }

}

1.1.3. 比较运算符(掌握)

用于比较两个变量或常量之间的大小关系,其结果是boolean类型(要么为true,要么为false)。

其操作格式为:

boolean  result  = 表达式A   比较运算符   表达式B;
image.png

注意:>=符号,表示大于或者等于。

public class ComparisonOperatorDemo {

public static void main(String[] args) {

    //直接操作常量

    System.out.println(10 > 5);//true

    System.out.println(10 >= 5);//true

    System.out.println(10 >= 10);//true

    System.out.println(10 < 5);//false

    System.out.println(10 <= 5);//false

    System.out.println(10 <= 10);//true

    System.out.println(10 == 10);//true

    System.out.println(10 != 10);//false

    //使用变量操作

    int a = 10;

    int b = 5;

    boolean result = a > b;

    System.out.println(result);//true

}

}

1.1.4. 三元运算符(掌握)

三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示if-else(如果什么情况就做什么,否则做什么)。

语法格式:数据类型 变量 = boolean表达式 ? 结果A :结果B;

  • 如果boolean表达式结果:

  • 为true,则三元运算符的结果是结果A;

  • 为false,则三元运算符的结果是结果B;

注:三元运算符必须定义变量接受运算的结果,否则报错

三元运算符结果的类型由结果A和结果B来决定的,结果A和结果B的类型是相同的。

需求1:判断一个数99是不是偶数

public class TernaryOperatorDemo1{

public static void main(String[] args) {

    int a = 99;

    String result = a % 2 == 0 ? "偶数" : "奇数";

    System.out.println(result);

}

}

需求2:求99和20两个数中的最大值

public class TernaryOperatorDemo2{

public static void main(String[] args) {

    int a = 99;

    int b = 20;

    int result = a > b ? a : b;

    System.out.println("最大值:"+result);

}

}

需求3:一共55条数据,每叶10个条数据,一共分多少页

image.png
public class TernaryOperatorDemo3{

public static void main(String[] args) {

    int totalCount = 54;

    int pageSize = 10;

    int totalPage = totalCount % pageSize == 0

        ? totalCount / pageSize

        : totalCount / pageSize + 1;

    System.out.println(totalPage);

}

}

1.1.5. 逻辑运算符(掌握)

逻辑运算符用于连接两个boolean表达式,结果也是boolean类型的。

语法格式为:boolean result = boolean表达式A 逻辑运算符 boolean表达式B;

运算规则如下:

image.png

规律:

  • 非:取反,!true则false,!false则true

  • 与:有false则false

  • 或:有true则true

  • 异或:^ 相同则false,不同则true

1.1.5.1. 基本使用(掌握)

public class LogicalOperatorDemo1 {

public static void main(String[] args) {

    int a = 10;

    int b = 20;

    int c = 30;

    //与操作

    System.out.println((a > b) & (a > c));// false  &  false

    System.out.println((a > b) & (a < c)); // false  &  true

    System.out.println((a < b) & (a > c)); // true  &  false

    System.out.println((a < b) & (a < c)); // true  &  true

    //或操作

    System.out.println((a > b) | (a > c));// false  |  false

    System.out.println((a > b) | (a < c)); // false |  true

    System.out.println((a < b) | (a > c)); // true  |  false

    System.out.println((a < b) | (a < c)); // true  |  true

    //相反操作

    System.out.println((a > b)); // false

    System.out.println(!(a > b)); // !false

    System.out.println(!!(a > b)); // !!false

}

1.1.5.2. &和&&的区别(掌握)

& :&左边表达式无论真假,&右边表达式都进行运算;

&& :如果&&左边表达式为真,&&右边表达式参与运算,否则&&右边表达式不参与运算,故称短路与。

| 和 || 的区别同理,||,左边为真,右边不参与运算。

public class LogicalOperatorDemo2 {

public static void main(String[] args) {

    System.out.println(false & 1 / 0 == 1);//报错,说明右边执行了

    System.out.println(false && 1 / 0 == 1);//不报错,说明右边没有执行

    System.out.println(true | 1 / 0 == 1);//报错,说明右边执行了

    System.out.println(true | 1 / 0 == 1);//不报错,说明右边没有执行

}

}

上述代码,一行一行的测试,测试完,注释该行代码。

1.1.6. 运算优先级

表达式的运算都是有优先级的,基本上和数学中的优先级类似,这里需要注意的是,赋值符号。

注意:赋值符号最后运算的,并且是从右向左运算的。

image.png

若要获得最好的学习效果,需要配合对应教学视频一起学习。需要完整教学视频,请参看https://ke.qq.com/course/272077

相关文章

  • python基础(四)----运算符

    一.算术运算符(基本同Java) 二.比较运算符(基本同Java) 三.赋值运算符(基本同Java) 四.位运算符...

  • Kotlin——运算符和表达式

    与Java相同的运算符 Kotlin完全支持Java的运算符 Kotlin不支持Java的三目运算符——Kotli...

  • 学会Java的运算符

    1.1. 运算符 对常量和变量进行操作的符号称为运算符 常用运算符: 算术运算符 赋值运算符 比较运算符 逻辑运算...

  • java基础知识

    title: java基础知识tags: [java基础知识] 位运算符 java种的运算符有 “&”,“|”,“...

  • Java基础知识3

    Java基础知识3 运算符 Java语言支持如下运算符 算术运算符:+,-,*,/,%模,取余数,++,-- 赋值...

  • Java语言入门2

    Java语言中的运算符 算数运算符:+,-,*,/,%,++,-- 关系运算符:>,<,>=,<=,==,!= 布...

  • Java &、&&、|、||、^、<

    Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,...

  • Java各种&、&&、|、||、^、<<、>>、~、>>>等运算

    Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,...

  • 操作多种运算符

    java运算符包括据哦算术运算符(+ - * /)、比较运算符(> < >= <= ==)、赋值运算符(= += ...

  • 日常记忆之Java运算符

    Java运算符 我们可以把运算符分成以下几组: 算术运算符+-*/,%,++,-- 关系运算符==,!=,>,<,...

网友评论

      本文标题:学会Java的运算符

      本文链接:https://www.haomeiwen.com/subject/zmyjiftx.html