• Java基础语法总结2


    三、运算符

    Java基 本 的 运 算 符 按功能分有 下 面 几 类 :

    1.算 术 运 算 符 (+,-,*,/,%,++,--) Java对 加 运 算 符 进 行 了 扩 展 ,使 它 能 够 进 行 字 符 串 的连 接,如 "abc"+"de",得到 串 "abcde"。与 C、 C++不 同 ,对 取 模 运 算 符 %来 说 ,其 操 作 数 可 以为浮点 数 , 如37.2%10=7.2。i++与 ++i的 区 别:i++在 使 用 i之 后 ,使 i的 值 加 1,因 此 执 行 完 i++后 ,整 个 表达式的 值 为 i,而 i的 值变 为 i+1;++i在 使 用 i之 前 ,使 i的 值 加 1,因 此 执 行 完 ++i后 ,整 个 表达式和 i的 值 均 为 i+1。

    2.关 系 运 算 符 (>,<,>=,<=,==,!=)该运算符的特点是:运算完的结果,要么是true,要么是false。Java中 ,任 何 数 据 类 型 的 数 据 (包 括 基 本 类 型 和 组 合 类 型)都可 以 通 过 ==或!=来 比 较 是 否 相 等 (这 与 C、 C++不 同 )。关 系 运 算 符 用 来 比 较 两 个 值 ,返 回 布 尔 类 型 的值true或 false,而不是C、C++中 的 1或 0。

    3.布 尔 逻 辑 运 算 符 (& | ^ ! && ||)

    逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。

    &: 只有两边都为true结果是true。否则就是false。

    |:只要两边都为false结果是false,否则就是true

    ^:异或:和或有点不一样。

    两边结果一样,就为false。

    两边结果不一样,就为true.

    & 和 &&区别: & :无论左边结果是什么,右边都参与运算。

    &&:短路与,如果左边为false,那么右边不参数与运算。

    | 和|| 区别:|:两边都运算。

    ||:短路或,如果左边为true,那么右边不参与运算。

    4.位 运 算 符 (>>,<<,>>>,&,|,^,~ ) 用于操作二进制位的运算符,如2*8 = 2<<3;。>>>(无符号右移)

    5.赋 值 运 算 符 (= += -= *= /= %=)

    6.条 件 运 算 符 ( ?:)

    7.其 它 (包 括 分 量 运 算 符 · ,下 标 运 算 符 [],实 例 运 算 符 instanc eof,内 存 分 配运 算 符 new,强 制 类 型 转 换 运 算 符 (类 型 ), 方 法调 用 运 算 符 () 等 )

    例子:对两个变量的数据进行互换。不需要第三方变量。

    int a = 3,b = 5;-->b = 3,a = 5;

    a = a + b; a = 8;

    b = a - b; b = 3;

    a = a - b; a = 5;

    a = a ^ b;//

    b = a ^ b;//b = a ^ b ^ b = a

    a = a ^ b;//a = a ^ b ^ a = b;

    Java 中共有 54 种运算符,按优先级可以分为 14 级:

    优先级 操作符 含义 关联性 用法

    ----------------------------------------------------------------

    1 [ ] 数组下标 左 array_name[expr]

    . 成员选择 左 object.member

    ( ) 方法参数 左 method_name(expr_list)

    ( ) 实例构造 左 class_name(expr_list)

    ++ 后缀自增 左 lvalue++

    -- 后缀自减 左 lvalue--

    2 ++ 前缀自增 右 ++rvalue

    -- 前缀自减 右 --lvalue

    ~ 按位取反 右 ~expr

    ! 逻辑非 右 !expr

    + 一元加 右 +expr

    - 一元减 右 -expr

    3 ( ) 强制转换 右 (type)expr

    new 对象实例化 右 new type()

    new type(expr_list)

    new type[expr]

    4 * 乘 左 expr * expr

    / 除 左 expr / expr

    % 求余 左 expr % expr

    5 + 加 左 expr + expr

    - 减 左 expr - expr

    + 字符串连接 左 strExpr + strExpr

    6 >> 有符号右移 左 expr >> distance

    >>> 无符号右移 左 expr >>> distance

    7 < 小于 左 expr < expr

    <= 小于等于 左 expr <= expr

    > 大于 左 expr > expr

    >= 大于等于 左 expr >= expr

    instanceof 类型比较 左 ref instanceof refType

    == 等于 左 expr == expr

    != 不等于 左 expr != expr

    8 & 整数按位与 左 integralExpr & integralExpr

    & 布尔与 左 booleanExpr & booleanExpr

    9 ^ 整数按位异或 左 integralExpr ^ integralExpr

    ^ 布尔异或 左 booleanExpr ^ booleanExpr

    10 | 整数按位或 左 integralExpr | integralExpr

    | 布尔或 左 booleanExpr | booleanExpr

    11 && 逻辑与 左 booleanExpr && booleanExpr

    12 || 逻辑或 左 booleanExpr || booleanExpr

    13 ? : 条件运算 右 booleanExpr ? expr : expr

    14 = 赋值 右 lvalue = expr

    *= 乘赋值 右 lvalue *= expr

    /= 除赋值 右 lvalue /= expr

    %= 模赋值 右 lvalue %= expr

    += 加赋值 右 lvalue += expr

    += 字符串连接赋值 右 lvalue += expr

    -= 减赋值 右 lvalue -= expr

    <<= 左移赋值 右 lvalue <<= expr

    >>= 有符号右移赋值 右 lvalue >>= expr

    >>>= 无符号右移赋值 右 lvalue >>>= expr

    &= 整数按位与赋值 右 lvalue &= expr

    &= 布尔与赋值 右 lvalue &= expr

    |= 整数按位或赋值 右 lvalue |= expr

    |= 布尔或赋值 右 lvalue |= expr

    ^= 整数按位异或赋值 右 lvalue ^= expr

    ^= 布尔异或赋值 右 lvalue ^= expr

    运算符不但有优先级,还有关联性。上表中关联性为"左"表示该表达式从左边开始进行运算;关联性为"右"表示该表达式从右边开始进行运算。

    四、流程控制语句(If 、 switch、 do while、 while、 for、break、continue)

    1. 当判断数据范围,获取判断运算结果boolean类型时,需要使用if;当判断固定个数的值的时候,可以使用if,也可以使用switch。但是建议使用switch,效率相对较高。

    switch(变量){

    case 值:要执行的语句;break;

    default:要执行的语句;

    }

    工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

    细节:1):break是可以省略的,如果省略了就一直执行到遇到break 为止;

    2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

    3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

    2.当某些语句需要执行很多次时,就用循环结构。

    while和for可以进行互换。区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

    3.break:作用于switch ,和循环语句,用于跳出,或者称为结束。break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

    4.continue:只作用于循环结构,继续循环用的。作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

  • 相关阅读:
    实现BaseFragment
    Android中过场动画
    (转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
    安卓学习----使用okHttp(POST方式)---登录
    安卓学习----使用okHttp(get方式)---下载图片
    安卓---Toast工具类,有点懒
    安卓--获取应用版本名称与版本号
    安卓--selector简单使用
    安卓--shape简单使用
    安卓第十八天笔记--简单动画
  • 原文地址:https://www.cnblogs.com/doit8791/p/2520568.html
Copyright © 2020-2023  润新知