程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> JAVA入門教程:運算符和表達式

JAVA入門教程:運算符和表達式

編輯:JAVA編程入門知識
  運 算 符 指 明 對 操 作 數 所 進 行 的 運 算 。 按 操 作 數 的 數 目 來 分 ,可 以 有 一 元 運 算 符 (如 ++、
  -),二 元 運 算 符 (如 +、 >)和 三 元 運 算 符 (如 ?:),它 們 分 別 對 應 於 一 個 、 兩 個 和 三 個 操 作 數 。 對
  於 一 元 運 算 符 來 說 ,可 以 有 前 綴 表 達 式 (如 ++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%10=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 op1op2 !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
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved