注册
 找回密码
 注册
江西广告网
查看: 338|回复: 0
打印 上一主题 下一主题

JAVA入门教程:运算符和表达式

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-27 17:41:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  运 算 符 指 明 对 操 作 数 所 进 行 的 运 算 。 按 操 作 数 的 数 目 来 分 ,可 以 有 一 元 运 算 符 (如 、   -),二 元 运 算 符 (如 、 >)和 三 元 运 算 符 (如 ?,它 们 分 别 对 应 于 一 个 、 两 个 和 三 个 操 作 数 。 对   于 一 元 运 算 符 来 说 ,可 以 有 前 缀 表 达 式 (如 i )和 后 缀 表 达 式 (如 i ),对 于 二 元 运 算 符 来 说 则   采 用 中 缀 表 达 式 (如 a b)。 按 照 运 算 符 功 能 来 分 ,基 本 的 运 算 符 有 下 面 几 类 :      1.算 术 运 算 符 ( ,-,*,/,%, ,--)      2.关 系 运 算 符 (>,<,>=,<=,==,!=)      3.布 尔 逻 辑 运 算 符 (!,&&,||)      4.位 运 算 符 (>>,<<,>>>,&,|,^,~ )      5.赋 值 运 算 符 (=,及 其 扩 展 赋 值 运 算 符 如 =)      6.条 件 运 算 符 ( ?      7.其 它 (包 括 分 量 运 算 符 · ,下 标 运 算 符 [],实 例 运 算 符 instanc eof,内 存 分 配 运 算 符 new,强 制 类   型 转 换 运 算 符 (类 型 ),方 法 调 用 运 算 符 () 等 )      本 章 中 我 们 主 要 讲 述 前 6类 运 算 符 。      § 3.1算 术 运 算 符      算 术 运 算 符 作 用 于 整 型 或 浮 点 型 数 据 ,完 成 算 术 运 算 。      一 、 二 元 算 术 运 算 符 ,如 下 表 所 示      运算符 用法 描述    op1 op2 加   - op1-op2 减   * op1*op2 乘   / op1/op2 除   % op1%op2 取模(求余)      Java对 加 运 算 符 进 行 了 扩 展 ,使 它 能 够 进 行 字 符 串 的 连 接 ,如 "abc" "de",得 到 串 "abcde"。 我   们 将 在 第 七 章 中 讲 解 。      与 C、 C 不 同 ,对 取 模 运 算 符 %来 说 ,其 操 作 数 可 以 为 浮 点 数 , 如 37.2=7.2。      二 、 一 元 算 术 运 算 符 ,如 下 表 所 示 :      运算符 用法 描述    op 正值   - -op 负值    op,op 加1   -- --op,op-- 减1      i 与 i的 区 别      i 在 使 用 i之 后 ,使 i的 值 加 1,因 此 执 行 完 i 后 ,整 个 表 达 式 的 值 为 i,而 i的 值 变 为 i 1。       i在 使 用 i之 前 ,使 i的 值 加 1,因 此 执 行 完 i后 ,整 个 表 达 式 和 i的 值 均 为 i 1。      对 i--与 --i同 样 。      例 3.1.下 面 的 例 子 说 明 了 算 术 运 算 符 的 使 用      public class ArithmaticOp{   public static void main( String args[] ){   int a=5 4; //a=9   int b=a*2; //b=18   int c=b/4; //c=4   int d=b-c; //d=14   int e=-d; //e=-14   int f=e%4; //f=-2   double g=18.4;   double h=g%4; //h=2.4   int i=3;   int j=i ; //i=4,j=3   int k= i; //i=5,k=5   System.out.println("a = " a);   System.out.println("b = " b);   System.out.println("c = " c);   System.out.println("d = " d);   System.out.println("e = " e);   System.out.println("f = " f);   System.out.println("g = " g);   System.out.println("h = " h);   System.out.println("i = " i);   System.out.println("j = " j);   System.out.println("k = " k);   }   }   其结果为:   C:\>java ArithmaticOp   a = 9   b = 18   c = 4   d = 14   e = -14   f = -2   g = 18.4   h = 2.4   i = 5   j = 3   k = 5      § 3.2关 系 运 算 符      关 系 运 算 符 用 来 比 较 两 个 值 ,返 回 布 尔 类 型 的 值 true或 false。 关 系 运 算 符 都 是 二 元 运 算   符 ,如 下 表 所 示 :      运算符 用法 返回true的情况   > op1>op2 op1大于op2   > op1>=op2 op1大于或等于op2   < op1<op2 op1小于op2   <= op1<=op2 op1小于或等于op2   == op1==op2 op1与op2相等   != op1!=op2 op1与op2不等      Java中 ,任 何 数 据 类 型 的 数 据 (包 括 基 本 类 型 和 组 合 类 型 )都 可 以 通 过 ==或 !=来 比 较 是 否   相 等 (这 与 C、 C 不 同 )。      关 系 运 算 的 结 果 返 回 true或 false,而 不 是 C、 C 中 的 1或 0。      关 系 运 算 符 常 与 布 尔 逻 辑 运 算 符 一 起 使 用 ,作 为 流 控 制 语 句 的 判 断 条 件 。 如      if( a>b && b==c)      § 3.3布 尔 逻 辑 运 算 符      布 尔 逻 辑 运 算 符 进 行 布 尔 逻 辑 运 算 ,如 下 表 所 示 :      op1 op2 op1&&op2 op1||op2 !op1   false false false false true   false true false true true   true false false true false   true true true true false   }@@@   ·&&、‖ 为二元运算符,实现逻辑与、逻辑或。   ·! 为一元运算符,实现逻辑非。   ·对于布尔逻辑运算,先求出运算符左边的表达式的值,对或运算如果为true,则整个表   达式的结果为true,不必对运算符右边的表达式再进行运算;同样,对与运算,如果左边表达式   的值为false,则不必对右边的表达式求值,整个表达式的结果为false。   下面的例子说明了关系运算符和布尔逻辑运算符的使用。   @@@[   public class RelationAndConditionOp{   public static void main( String args[] ){   int a=25,b=3;   boolean d=a<b; //d=false   System.out.println("a<b = " d);   int e=3;   if(e!=0 && a/e>5)   System.out.println("a/e = " a/e);   int f=0;   if(f!=0 && a/f>5)   System.out.println("a/f = " a/f);   else   System.out.println("f = " f);   }   }   其运行结果为:   C:\>java RelationAndConditionOp   a<b = false   a/e = 8   f = 0      注 意 :上 例 中 ,第 二 个 if语 句 在 运 行 时 不 会 发 生 除 0溢 出 的 错 误 ,因 为 e!=0为 false,所 以 就 不 需   要 对 a/e进 行 运 算 。      § 3.4位 运 算 符      位 运 算 符 用 来 对 二 进 制 位 进 行 操 作 ,Java中 提 供 了 如 下 表 所 示 的 位 运 算 符 :      位 运 算 符 中 ,除   ~   以 外 ,其 余 均 为 二 元 运 算 符 。      操 作 数 只 能 为 整 型 和 字 符 型 数 据 。      3.4.1补 码      Java使 用 补 码 来 表 示 二 进 制 数 ,在 补 码 表 示 中 ,最 高 位 为 符 号 位 ,正 数 的 符 号 位 为 0,负 数   为 1。 补 码 的 规 定 如 下 :      对 正 数 来 说 ,最 高 位 为 0,其 余 各 位 代 表 数 值 本 身 (以 二 进 制 表 示 ),如 42的 补 码 为   00101010。      对 负 数 而 言 ,把 该 数 绝 对 值 的 补 码 按 位 取 反 ,然 后 对 整 个 数 加 1,即 得 该 数 的 补 码 。 如   -42的 补 码 为 11010110 (00101010 按 位 取 反 11010101 1 11010110 )      用 补 码 来 表 示 数 ,0的 补 码 是 唯 一 的 ,都 为 00000000。 (而 在 原 码 ,反 码 表 示 中 , 0和 -0的 表 示   是 不 唯 一 的 ,可 参 见 相 应 的 书 籍 )。 而 且 可 以 用 111111表 示 -1的 补 码 (这 也 是 补 码 与 原 码 和 反   码 的 区 别 )。      3.4.2按 位 取 反 运 算 符   ~      ~   是 一 元 运 算 法 ,对 数 据 的 每 个 二 进 制 位 取 反 ,即 把 1变 为 0,把 0变 为 1。      例 如 :      0010101      ~      1101010      注 意 ,~ 运 算 符 与 - 运 算 符 不 同 ,~ 21≠ -21。      3.4.3按 位 与 运 算 符 &      参 与 运 算 的 两 个 值 ,如 果 两 个 相 应 位 都 为 1,则 该 位 的 结 果 为 1,否 则 为 0。 即 :      0 & 0 = 0,0 &1 = 0,1 & 0 = 0,1 & 1 = 1      
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表