程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> C與Java在流程控制上的異同

C與Java在流程控制上的異同

編輯:JAVA編程入門知識

  山 東 煤 炭 教 育 學 院
  胡 振 山 郭 施 毅
  ---- 過 程 式 編 程( 代 表 語 言C) 首 先 必 須 定 義 所 要 實 現 的 功 能, 然 後 設 計 為 實 現 這 些 功 能 所 必 須 的 步 驟。 此 步 驟 也 就 是 過 程。 編 寫 代 碼 實 際 上 等 同 於 分 解 這 些 步 驟, 使 每 一 步 直 接 對 應 一 行 代 碼。 為 實 現 有 限 度 的 重 用, 代 碼 被 組 織 到 過 程 或 函 數 中。 每 當 發 現 一 段 反 復 使 用 的 代 碼 時, 你 都 可 以 把 他 組 織 到 一 個 過 程 或 函 數。 這 種 方 式 對 於 有 些 問 題 是 合 適 的, 問 題 是 如 果 程 序 達 到 一 定 程 度, 程 序 的 調 試 和 維 護 就 會 變 得 很 困 難, 這 時 過 程 式 編 程( 語 言) 就 不 合 適 了。 於 是 面 向 對 象 的 編 程 方 法 及 面 向 對 象 語 言( 代 表Java) 已 成 為 編 程 的 主 流。 過 程 式 編 程 存 在 的 局 限 性, 其 根 本 原 因 就 是 在 於 他 與 現 實 世 界 模 型 之 間 的 不 一 致。 現 實 世 界 的 模 型 中, 實 體 是 基 本 的 組 成 單 元, 實 體 具 有 屬 性 和 行 為, 這 兩 者 是 渾 然 一 體 的。 與 過 程 式 編 程 語 言 相 反, 面 向 對 象 的 語 言 則 考 慮 了 這 兩 者 的 之 間 的 一 致。 面 向 對 象 編 程 首 先 考 慮 是 需 要 那 些 實 體, 這 些 實 體 具 有 何 種 行 為。 實 體 就 是 對 象, 行 為 是 基 於 某 些 消 息 所 做 出 的 反 映。
  
  ---- 流 程 控 制 對 於 任 何 一 門 編 程 語 言 來 說 都 是 至 關 重 要 的, 他 提 供 了 控 制 程 序 步 驟 的 基 本 手 段, 是 程 序 的 核 心 部 分, 可 以 說, 缺 少 了 控 制 流, 就 不 會 有 程 序 設 計 語 言, 因 為 現 在 沒 有 哪 一 種 程 序 只 是 線 性 地 執 行 語 句 序 列。 程 序 中 需 要 與 用 戶 相 互 交 流, 需 要 根 據 用 戶 的 輸 入 決 定 執 行 序 列, 需 要 有 循 環 執 行 等 等, 這 些 都 少 不 了 流 程 控 制。
  
  ---- Java 的 流 程 控 制 有: 條 件 語 句IF; 循 環 語 句while,do while ,for; 開 關 語 句switch,case,break; 轉 移 語 句break,continue,label; 返 回 語 句return 以 及 復 合 語 句。 也 許 你 會 認 為 這 些 語 句 與C 一 樣, 沒 有 什 麼 區 別。 是 的, 語 句 一 樣 但 還 是 存 在 區 別 的, 接 下 來 我 們 看 區 別 何 在。
  
  條 件 語 句if - else
  ---- 條 件 語 句 是 程 序 設 計 語 言 中 最 基 本 的 流 程 控 制 語 句, 幾 乎 任 何 一 門 程 序 設 計 語 言 的 條 件 語 句 都 用 到 了IF 關 鍵 字, 因 而 條 件 語 句 也 被 稱 為IF 語 句。 條 件 語 句 分 簡 單 語 句 和 復 合 語 句, 如 果 條 件 語 句 得 分 支 中 又 包 括 了 條 件 語 句, 即 稱 為 復 合 條 件 語 句, 或 嵌 套 條 件 語 句; 否 則 稱 為 簡 單 語 句。
  ---- 用 法:if (boolean) statement1 else statement2
  
  ---- 不 同:Java 分 支 語 句 中 條 件 表 達 式 必 須 是 布 爾 型, 不 能 是 數 值 型。 這 裡 不 能 像C 那 樣 直 接 放 上 數 值 數 據, 而 應 該 用 關 系 表 達 式 代 替。
  
  Class sample1
  {
   public static void main(String args[])
   {
   char Ch;
   System.Out.println("Please enter a number 1-3:");
   Ch=(char)System.in.read();
   if(Ch==-1)
   System.out.println(" No character entered.");
   else if (Ch==´1´)
   System.out.println(" You have entered a 1.");
   else if(Ch==´2´)
   System.out.println(" You have entered a 2.");
   else if(Ch==´3´)
   System.out.println(" You have entered a 3.");
   else System.out.println
   (" You have entered a wrong number.");
   }
  }
  
  ---- 循 環 語 句 在 執 行 過 程 中 某 一 段 代 碼 重 復 執 行.Java 也 提 供 了 三 種 不 同 的 循 環 語 句.
  ---- 循 環 語 句while while 語 句 的 功 能 是 當 條 件 成 立 時, 重 復 執 行 子 語 句, 重 復 執 行 的 次 數 取 決 於 子 語 句 的 執 行 情 況.while 語 句 的 用 法;
  
  while(boolean_eXPression)
  {
   statements;
  }
  
  循 環 語 句do
  ---- 如 果 需 要 循 環 執 行 的 語 句 至 少 要 執 行 一 次, 可 使 用do---while 語 句.do---while 語 句 是while 語 句 的 一 個 變 種. 用 法 是:
   do
   {
   statements;
   }while(boolean_expression);
  
  ---- Java 與C 循 環 語 句 的 差 別 主 要 體 現 在 條 件 表 達 式,C 語 言 的 條 件 表 達 式 要 比Java 靈 活 的 多, 可 以 為 任 意 整 數 表 達 式.Java 則 必 須 為 布 爾 表 達 式.
  循 環 語 句for
  ---- for 語 句 是 最 標 准 的 循 環 語 句, 幾 乎 所 有 的 高 級 編 程 語 言 都 提 供 了 類 似 的 循 環 語 句, 而 且 也 是 功 能 最 強 的 一 種 循 環 結 構.for 語 句 的 功 能 是 循 環 執 行 一 段 語 句, 直 到 某 個 條 件 為 假, 其 結 構 是:
   for(expresson1;expression2;expression3)
   {
   statements;
   }
  
  Class sample2
  {
   public static void main(String args[])
   {
   char Ch;
   int i=0;
   boolean test=True;
   while(test)
   {
   i+=1;
   System.Out.println(" The line %d",i");
   If (I==10) test=false;
   }
   for(I=20;I<=30;I++)
   System.Out.println(" The line %d",i");
   }
  }
  
  開 關 語 句switch
  switch是條件語句的一個變種,其結構是:
   switch(expression)
   {
   case 常 量1:
   statement 1;
   break;
   case 常 量2:
   statement 1;
   break;
   ..........
   default:
   statement 1;
   break;
   }
  
  ---- 執 行switch 語 句 時, 首 先 需 要 計 算 括 號 內 表 達 式 的 值, 然 後 把 這 個 值 與case 後 面 的 常 量 比 較. 執 行 第 一 個 匹 配 的 語 句 分 支; 若 無 匹 配 則 執 行 最 後 一 個default 分 支, 如 果 同 時 缺 省default 項, 則 不 執 行 任 何 語 句. 開 關 語 句 在Java 與C 中 的 使 用 完 全 一 樣. 轉 移 語 句break,continue, 返 回 語 句return 在Java 和C 中 的 使 用 方 法 一 樣, 只 是Java 中 的label 標 號 語 句 類 似C 語 言 中 的goto 語 句.Java 不 支 持goto 語 句.goto 語 句 會 導 致 很 多 麻 煩, 他 也 許 可 暫 時 解 決 一 個 問 題, 但 會 嚴 重 破 壞 程 序 的 可 擴 充 性.
  Char ch;
  Outlabel:
  For(int I=0;I< 10;I++)
  {
   ch=(char)System.in.read();
   switch(ch)
   {
   case ´a´:
   break Outlabel;
   case ´b´:
   Sysyem.out.println
   (" You have entered a character b");
   Break;
   case ´c´:
   continue;
   break;
   default:
   Sysyem.out.println
   (" You have entered a wrong character ");
   Return;
   }
  
  ---- 通 過 以 上 簡 單 的 介 紹,Java 語 言 並 不 陌 生, 他 和C 的 流 程 幾 乎 完 全 一 致, 只 不 過 少 了goto 語 句. 但 實 際 上,Java 與C 在 流 程 控 制 上 還 是 有 其 他 一 些 細 微 的 差 別. 隨 著Java 學 習 的 不 斷 深 入, 你 會 有 深 刻 的 認 識 和 豐 富 的 收 獲。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved