class="hljs-ln-code"> class="hljs-ln-line">int a = 20;
  • class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 10;
  • class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a + b);     // 30
  • class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a - b);     // 10
  • class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="5"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a * b);     // 200
  • class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="6"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a / b);     // 2
  • class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="7"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a % b);     // 0 --->模运算相当于数学中除法的余数
  • class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)"> > 注意事项: > >
    >
    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 3;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 2;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即小数点之后全部舍弃掉了
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
    >
    System.out.println(1+0.2); // +的左侧是int,右侧是double,在加之前int被提升为double class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    2.增量运算符(+= -= *= /= %=)

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

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 1;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">a += 2;                  // 相当于 a = a + 2
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">a -= 1;                  // 相当于 a = a - 1
    5. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="5"> class="hljs-ln-code"> class="hljs-ln-line">
    6. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="6"> class="hljs-ln-code"> class="hljs-ln-line">a *= 3;                  // 相当于 a = a * 3
    7. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="7"> class="hljs-ln-code"> class="hljs-ln-line">
    8. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="8"> class="hljs-ln-code"> class="hljs-ln-line">a /= 3;                  // 相当于 a = a / 3
    9. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="9"> class="hljs-ln-code"> class="hljs-ln-line">
    10. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="10"> class="hljs-ln-code"> class="hljs-ln-line">a %= 3;                  // 相当于 a = a % 2
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    注意:只有变量才能使用该运算符,常量不能使用。

    3.自增/自减运算符(++ --)

    自增运算符分为前置和后置。

    当前置时,变量先执行+1操作,而后是表达式执行。

    当后置时,表达式先执行完毕,执行完后对变量执行+1操作。

    实例:

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 1;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">a++; // 后置++ 表示给a的值加1,此时a的值为2
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a++); // 注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a); // 输出3
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
    >
    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 3
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">++a; // 前置++ 表示给a的值加1
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(++a); // 注意:前置++是先给变量+1,然后使用变量中的值,因此输出5
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a); // 输出5
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
    > - - 操作符给操作 -1 ,与 ++ 含义类似 > > 注意事项:
    > > 1)如果单独使用,【前置 ++ 】和【后置 ++ 】没有任何区别 > 2)如果混合使用,【前置 ++ 】先 +1 ,然后使用变量 +1 之后的值,【后置 ++ 】先使用变量原来的值,表达式 结束时给变量+1 > 3)只有变量才能使用自增 / 自减运算符,常量不能使用,因为常量不允许被修改

    二.关系运算符

    关系运算符主要有六个:==,!=,<,>,<=,>=。

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 10;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 20;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">// 注意:在Java中 = 表示赋值,要与数学中的含义区分
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">// 在Java中 == 表示相等
    5. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="5"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a == b); // false
    6. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="6"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a != b); // true
    7. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="7"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a < b); // true
    8. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="8"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a > b); // false
    9. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="9"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a <= b); // true
    10. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="10"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a >= b); // false
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
    > > 注意:当需要多次判断时,不能连着写,比如:3 < a < 5Java程序与数学中是有区别的 >

    三.逻辑运算符(重点)

    1.逻辑与(&&)

    语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果

    两个表达式都为真,结果才是真,只要有一个是假,结果就是假。

    代码实例如下:

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 1;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 2;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a == 1 || b > 100); // 左为真 但 右为假 则结果也为真
    5. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="5"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a > 100 || b == 2); // 左为假 但 右为真 则结果也为真
    6. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="6"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a > 100 || b > 100); // 左为假 且 右为假 则结果为假
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    2.逻辑或(||)

    左右表达式至少有一个为真,则结果为真

    代码:

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 1;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 2;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a == 1 || b > 100); // 左为真 但 右为假 则结果也为真
    5. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="5"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a > 100 || b == 2); // 左为假 但 右为真 则结果也为真
    6. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="6"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a > 100 || b > 100); // 左为假 且 右为假 则结果为假
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    3.逻辑非(!)

    真变假,假变真。

    >

    4.短路求值

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

    对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。

    对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。

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

    四.位运算符

    位操作表示按二进制位运算.。

    1.按位与(&)

     如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。

    例如:

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 10;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 20;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a & b); //打印结果为0
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    进行按位运算, 需要先把 10 和 20 转成二进制, 分别为 1010 和 10100,然后每位进行比较,对应位置二进制位都为1,结果为1,否则为0;

    最终结果为:0

    2.按位或(|)

    如果两个二进制位都是 0, 则结果为 0, 否则结果为 1

    例如:

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">int a = 10;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">int b = 20;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">System.out.println(a | b); //结果为30
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    与按位与相同,先化为二进制,再每位进行比较

    3.按位取反(~)

    > 如果该位为 0 则转为 1, 如果该位为 1 则转为 0

    4.按位异或(^)

    如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.(找不同)

    > > 注意:如果两个数相同,则异或的结果为0 >

    五.移位运算符

    移位运算符有三个 >> ,<< ,>>>

    1)左移<<

    二进制为向左移动,最右侧补0

    注意:向左移位时,丢弃的是符号位,因此正数左移可能会编程负数

    2)右移>>

    丢弃最右侧二进制位,最左侧补符号位(整数补0,负数补1)

    3)无符号右移>>>

    丢弃最右侧二进制位,最左侧补0

    > 注:移位运算的速度快于加减乘除的运算速度 >

    六.条件运算符

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

    表达式1的值为true时,整个表达式的值为表达式2的值;

    当表达式1的值为false时,整个表达式的值为表达式3的值;

    也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.

    实例:

    1. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line"> int a = 10;
    2. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line"> int b = 20;
    3. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line"> int max = a > b ? a : b;
    4. class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="4"> class="hljs-ln-code"> class="hljs-ln-line"> System.out.println(max);
    class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
    > 结果: > > > 注意: > > > > > > > > > 问题:该表达式的结果为 > >
     boolean flg = true == true ? true == false ? true : false : true; class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

    首先将该整个表达式分割成3个表达式

    首先表达式1成立,则表达式结果为表达式2的值。表达式2的最终结果为false,所以结果为false。

    >

    七.运算符的优先级

    > 在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同,有些情况下稍不注意,可能就会造成很大的麻烦。 > > 下图为运算符优先级:


    以上便是全部内容,如有不对,欢迎指正

    data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/yc_xym/article/details/145690336","extend1":"pc","ab":"new"}">>
    注:本文转载自blog.csdn.net的十尾仙狸的文章"https://blog.csdn.net/qq_42675140/article/details/125128261"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
    复制链接

    评论记录:

    未查询到任何数据!