zoukankan      html  css  js  c++  java
  • java基础语法运算符

    1.1                算数运算符++、--的使用

    在一般情况下,算数运算符不会改变参与计算的变量值。而是在原有变量值不变的情况下,计算出新的值。但是有些操作符会改变参与计算的变量的值,比如++,--。

    我们来看一段代码:

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

    上面代码的输出结果a值为4,b值为2;

    这说明a的原有值发生了改变,在原有值的基础上自增1;b的原有值也发生了改变,在原有值的基础上自减1;

    l  ++运算符,会在原有值的基础上自增1;

    l  --运算符,会在原有值的基础上自减1。

    我们再看一段代码:

    ++,--运算符参与运算操作时,发生了怎样的变化,我们来看一段代码:

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

    上面代码的输出结果a值为4,b值为13;

    总结:

    ++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;

    再介绍下++,--运算符前置时,参与运算操作的变化,我们来看一段代码:

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

    上面代码的输出结果a值为4,b值为14;

    这里我强调一下,当++,--运算符参与运算操作时,前置++,--的作用:

    ++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。

    1.2                赋值运算符

    运算符

    运算规则

    范例

    结果

    =

    赋值

    int a=2

    2

    +=

    加后赋值

    int a=2,a+=2

    4

    -=

    减后赋值

    int a=2,a-=2

    0

    *=

    乘后赋值

    int a=2,a*=2

    4

    /=

    整除后赋值

    int a=2,a/=2

    1

    %=

    取模后赋值

    int a=2,a%=2

    0

    首先:我们看下面的错误代码

    public class OperatorDemo3
    {
        public static void main(String[] args){
              byte x=10;
              byte y=x+20;
              System.out.printIn(y)
        }
        
    }            

     因为上面是byte+20结果应该为Int类型,但是直接写成byte类型了,没有强制转换。

     如果用赋值运算符后,就会将结果自动强制转换数据类型,下面便是:

     注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

     写一个代码,我们看一下赋值运算符的使用

     /*
     * 赋值运算符
     * +=, -=, *=, /=, %= : 
     * 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
     * 注意:赋值运算符左边必须是变量
     */
    public class OperatorDemo2 {
        public static void main(String[] args) {
            byte x = 10;
            x += 20;// 相当于 x = (byte)(x+20);
            System.out.println(x);
        }
    }

    运行结果为30.

    1.3                逻辑运算符

    逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。

    运算符

    运算规则

    范例

    结果

    &

    false&true

    False

    |

    false|true

    True

    ^

    异或

    true^flase

    True

    !

    !true

    Flase

    &&

    短路与

    false&&true

    False

    ||

    短路或

    false||true

    True

             看完图后,我们来看一下逻辑运算符的常规使用方式:

        ^:两边不相同为true,否则为false

        

    l  短路与&&:参与运算的两边数据,有false,则运算结果为false;

    l  短路或||:参与运算的两边数据,有true,则运算结果为true;

    l  逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。

    短路的作用是一边又false,另一边不执行。提高效率

    1.4               三元运算符

    l  格式:

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

    通过代码演示,我们来学习下三元运算符的使用:

    方式一:
        System.out.println( 3>2 ? “正确” : “错误” ); 
    // 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印
    
    方式二:
        int a = 3;
        int b = 4;
        String result = (a==b) ? “相等” : “不相等”;  
    //三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result
    
    方式三:
        int n = (3>2 && 4>6) ? 100 : 200;
        //三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n

    我们看一下复杂的代码:

    int a = 5;
     int b = 3;
     int c = 1;
    int n2 = (a>b && b>c) ? (c++) : (++c);

    这段代码运算执行顺序我们也写一下:

    l  1.小括号优先级高,我们先运算第一组小括号中的代码

    l  1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”

    n  先执行 a>b,得到结果true;

    n  再执行 b>c,得到结果true;

    n  最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true

    l  2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++

    n  先将变量c的原有值赋值给变量n2,即n2值为1;

    n  再将变量c的值自增1,更新为2。

    结果是n2=1;c=2;

     

     

     

     

     

     

  • 相关阅读:
    Thinking in Java
    Interview Common Sample Codes
    Longest Common Substring
    Mac键盘按键符号
    ElasticSearch
    Variables and Arithmetic Expression
    Associative Containers
    Container Adaptors
    string Type
    初识 tk.mybatis.mapper 通用mapper
  • 原文地址:https://www.cnblogs.com/lixiangyang521/p/7821828.html
Copyright © 2011-2022 走看看