1 / 115

第 3 章 Java 基本語法

第 3 章 Java 基本語法. 製作. 資料型別、變數與常數 - 資料型別. 在 Java 中定義了八種基本的資料型態,它們是 byte 、 short 、 int 、 long 、 float 、 double 、 char 、 boolean ,以下將把資料型態分為四類加以介紹: 整數 – byte 、 short 、 int 與 long 屬於此類。 浮點數 – float 與 double 屬於此類。 字元 – char 屬於此類。 布林值 – boolean 屬於此類。. 資料型別、變數與常數 - 資料型別. 整數.

kaspar
Download Presentation

第 3 章 Java 基本語法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 3 章 Java基本語法 製作

  2. 資料型別、變數與常數 - 資料型別 • 在Java中定義了八種基本的資料型態,它們是byte、short、int、long、float、double、char、boolean,以下將把資料型態分為四類加以介紹: • 整數 – byte、short、int與long屬於此類。 • 浮點數 – float與double屬於此類。 • 字元 – char屬於此類。 • 布林值 – boolean屬於此類。

  3. 資料型別、變數與常數 - 資料型別 整數

  4. 資料型別、變數與常數 - 資料型別 浮點數

  5. 資料型別、變數與常數 - 資料型別 字元 • 用於儲存字元資料的型別為char,由於Java的char型別使用全球文字碼(Unicode),因此 所佔記憶體空間為16位元。一般程式語言用於 儲存字元的型別,大多僅佔用8位元,且無法表 達出世界上使用的所有文字。

  6. 資料型別、變數與常數 - 資料型別 布林值 • 型別為布林值的資料,其資料值僅有true(真)與false(假)兩種,常用於程式流程的控制。 在Java中,用於儲存布林值的型別為boolean。

  7. 資料型別、變數與常數- 變數與常數 • 變數(Variable)就是程式中變動的資料。在 程式中,通常以一個名稱來代表某個變數。 • 常數(Constant)則是程式中不會變動的資料,用於代表一特定值,請看下面的例子。 X = 1;

  8. 資料型別、變數與常數- 變數與常數 • 在JSP網頁中,若欲使用某變數時,必須經過變數宣告的動作,語法如下: 資料型別 變數名稱; • 欲同時宣告一個以上的同類別變數時,可運用『,』符號,將變數名稱隔開。 資料型別 變數名稱1, 變數名稱2, …;

  9. 資料型別、變數與常數- 變數與常數 • 以下敘述將宣告一個型別為整數(int),名稱 為 A的變數。 int A; • 下面的語法將同時宣告A、B為整數變數。 int A, B; • JSP並不限定宣告變數的位置,您可以在需要 使用變數時,即時宣告。

  10. 資料型別、變數與常數- 變數與常數 • 欲將值設定給該變數時,須運用『 =』 指派 運算子,語法如下: 變數名稱 = 值; • 例如下面的敘述,即將100指派給A變數。 A = 100;

  11. 資料型別、變數與常數- 變數與常數 • 在宣告變數的同時,亦可同時起始變數值。 • 以下敘述,將在宣告A變數的同時,將變數值 起始為100。 int A = 100;

  12. 資料型別、變數與常數- 變數與常數 • 對於變數名稱的使用有以下的限制: • 不能與Java所使用的保留字相同,如:您不能宣告一個名為for的變數,因為for是Java中迴圈敘述的保留字。 • 變數名稱可利用英文字母、數字以及除了『.』點以外標點符號所組成。 • 在同一個變數的可見範圍中,變數名稱必須是唯一的。不過,在Java中,英文有大小寫的區別,換言之,a變數與A變數,將代表不同的變數。 • 避免使用底線(_)與金錢符號($),以免被誤認為系統變數。

  13. 資料型別、變數與常數- 變數與常數 • 當某變數宣告於某JSP網頁中時,若該宣告敘述  出現在某『{…}』符號的包含範圍中,則該變數僅可在『{…}』內使用。離開了該範圍後,變數將無法存取。

  14. 運算子- 運算子與算式 • 運算子為程式中用於執行計算動作的符號。 • 在Java中,依照所執行的計算動作,可將運算子歸類如下: • 算術運算子 • 比較運算子 • 邏輯運算子 • 字串運算子 • 指派運算子

  15. 運算子- 運算子與算式 • 由變數與運算子所構成,用於代表一連串計算動作的式子稱之為運算式。

  16. 運算子- 算術運算子 • 算術運算子與運用語法整理如下表:

  17. 運算子- 運算子與算式 • 算術運算子中的加法運算子 - 『+』,除了執行 數值的加法運算外,運用於字串時可串接兩字串,如: str = "ABC" + "DEF"; • 上述運算式中,str變數的值將為『ABCDEF』。若欲串接數值與字串時,亦可使用『+』運算子。 str2 = "ABC" + 123;

  18. 運算子- 比較運算子 • Java的比較運算子整理如下表:

  19. 運算子- 邏輯運算子 • Java中的邏輯運算子整理如下:

  20. 運算子- 邏輯運算子 • 下表稱為真值表,T代表『真』,F代表『假』。我們整理當A、B在各種情形下,各邏輯運算子的運算結果:

  21. 運算子- 『=』運算子 • 在程式中,應該以『指派符號』代替『等號』做為『=』運算子的名稱。 • 『=』符號在程式裡的意義與數學上的意義並不完全相同,但許多人在觀念上仍以『等號』看待它。 • 在程式中大部份的地方,的確也可以用『等號』的觀念來解釋『=』符號。比如: 式一:A = 1 + 2

  22. 運算子- 『=』運算子 • 在式一中,可很容易地就能看出A的值為3,所以在這裡用『等號』的觀念來解釋,並沒有困難。 • 但是下面的式二也常在程式中出現,比如: 式二:A = A + 1 • 如果再用『等號』的觀念解釋式二中的『=』符號,就怎麼也說不通了。

  23. 運算子- 『=』運算子 • 在程式裡,不應用『等號』的觀念來看『=』符號。而應該解釋為『指派』。 • 當用『指派』的觀念解釋『=』符號時,式二的 意義將可以很容易地解釋。 • 式二的計算方式是將A中儲存的資料取出來,並 加一後,再把這個值放回A變數原先儲存的記憶 體空間裡。

  24. 運算子- 遞增、遞減運算子 • 在Java裡,有++(遞增)運算子與--(遞減)運算子。這兩個運算子,用於將變數值增加1或者減少1, 例如: i++; 相當於 i = i + 1; 而 i--; 則相當於 i = i - 1;

  25. 運算子- 算術指派運算子 • 以下為各種算術指派運算子的使用範例:

  26. 運算子- 各運算子的計算順序 • 運算子的計算順序觀念,就是當一道運算式中, 存在許多運算子時,處理每一個運算子的順序。 • 若遇到處理順序相同的,則以左邊的運算子優先。 • 這個概念其實就是數學中先乘除後加減的觀念。

  27. 優先次序 高 低 高 優先次序 低 運算子- 各運算子的計算順序 • 下表將表達出Java中各類運算子的運算順序:

  28. 運算子- 各運算子的計算順序 • 表中各運算子的優先次序為由上至下,由左至右。 • 因此運算式中,以算術運算子最優先。在算術運算子中,又以最左方的++運算子與--運算子為最優先。 • 當電腦執行到一行運算式時,將會先執行遞增或 遞減運算子,然後再處理其他的運算子。若有括號時,則優先計算括號內的算式。

  29. 運算子- 各運算子的計算順序 • 以下的例子,將說明運算子的優先處理順序。 5*2 > 6 && 7+8 < 8 首先,電腦將會先完成上式中,算術運算子的運算,計算出5*2=10與7+8=15,如下所示: 10 > 6 && 15 < 8 然後,整理比較運算的部份得到下面的結果: true && false 最後得到結果為false

  30. 運算子- 各運算子的計算順序 • 再舉一個算術運算子的例子: A = 5 * ( 2 * 2 ) + 6 / 2 第一步先計算括號內的算式(2*2=4),得到  下面的結果。 A = 5 * 4 + 6 / 2 計算乘除,得到下面的結果。 A = 20 + 3 最後得到A = 23

  31. 運算子- 型別轉換 • 在Java中,當算式執行運算時,必須將運算式中,欲計算的所有資料之型別,都轉換成同一型別。 • Java亦提供一個自動執行型別轉換的機制,能 夠在執行運算時,自動轉換運算式中資料的型別,例如:『1 + 2.5』這個式子,1將會先轉換為1.0,然後才與2.5相加。

  32. 運算子- 型別轉換 • 自動型別轉換的規則,均是將資料的型別,從  佔記憶體空間小者,轉換為佔記憶體空間大者。 • 舉例來說,int型別可以表示byte型別所代表的 資料。但是byte型別卻無法完整的表示出所有int型別所表示的資料。 • 所以,byte型別的資料可以轉換為int型別,但是int型別的資料,不可以轉換為byte。

  33. 運算子- 型別轉換 • 以下將運用這道運算式,並配合運算子的計算  優先順序,講解自動型別轉換的過程。 R = i / d + f * d – l 式中變數的資料型別為i(int)、 f(float)、 d(double)、 l(long)、R(double)。

  34. 運算子- 型別轉換 • 下圖是運算式計算時,資料型別轉換的過程。

  35. 運算子- 型別轉換 • 編譯器在編譯的過程中,將自動執行型別轉換。 若有需要時,亦可自行強迫轉換型別,其語法如下: (欲轉換的型別) 運算式; 或 (欲轉換的型別) 變數;

  36. 運算子- 型別轉換 • 比如,當7/2時,由於7與2都是整數,相除後的 計算結果,也是整數。所以,7/2的計算結果等於3,而不是3.5。 • 想要解決這個問題,可以將7先強制轉型為浮點數,再執行運算。 (float)7 / 2; 上式的計算結果將為3.5。

  37. 流程控制 - 流程控制的用途與種類 • 流程控制是程式中,用於控制或選擇某一程式  區段執行方式的語法。 • 流程控制分為兩類: • 判斷敘述-利用條件式,進而決定要執行哪一個    程式區段。 • 迴圈-配合條件式,控制某程式區段的重複執行。

  38. 流程控制 - 流程控制的用途與種類 • 判斷結構最基本類型的語法如下所示: if (條件式) 程式區段; • 若程式敘述不止一行時,則需用『{…}』,標示這些程式區段。 if (條件式){ 程式區段; …… }

  39. 流程控制 - 流程控制的用途與種類 • if後的條件式,經過運算將傳回true或false。 傳回true時,則執行程式區段。若為false,則 跳過程式區段。 • 因此,判斷結構語法是靠條件式傳回的布林值, 做為程式區段是否被執行的依據。

  40. 流程控制 - 流程控制的用途與種類 • 迴圈控制語法如下所示: while (條件式){ 程式區段; …… } • 若程式敘述只有一行時,可省略{與}符號。

  41. 流程控制 - 流程控制的用途與種類 • 當while後的條件式傳回值為true時,則執行程 式區段,直到條件式傳回值為false時,才跳出 迴圈。 • 因此,當迴圈被執行時,一定會有改變條件式內,某變數的敘述,否則條件式的計算結果將永遠不會為false,也就無法跳出迴圈的控制。

  42. 流程控制 - if判斷敘述 • if判斷結構依照功能可以分為以下兩類: • 單一條件判斷敘述: 利用一條件式控制程式是否執行某程式敘述或 由兩程式敘述中擇一執行。此判斷敘述將利用 if或if…else…建立。 • 多條件判斷敘述: 利用多種條件控制程式所執行的敘述,此判斷 敘述將以if…else if...else…建立。

  43. 流程控制- if判斷敘述 單一條件判斷敘述 • 語法一:(控制單一程式敘述) if (條件式){ 程式敘述; …… }

  44. 流程控制- if判斷敘述 • 語法一其執行流程圖如下:

  45. 流程控制- if判斷敘述 • 語法二:(兩程式敘述擇一執行) if (條件式) { 程式敘述一; …...; } else { 程式敘述二; ……; }

  46. 流程控制- if判斷敘述 • 語法二其執行流程圖如下:

  47. 流程控制- if判斷敘述 多條件判斷敘述 • 當選擇執行程式的判斷條件不止一個時,就必須利用if…else if…else建立流程控制,語法如下: if (條件式A) { 程式敘述一; ……} else if (條件式B){ 程式敘述二; ……} else if …… …… else{ 程式敘述N; }

  48. 流程控制- if判斷敘述 • 上頁的語法,其執行流程圖如下:

  49. 流程控制- if判斷敘述 • 巢狀判斷敘述是一種可以達成與多條件判斷敘述 類似功能的判斷敘述。 • 當在判斷式的程式敘述中,又利用一個判斷敘述 進行判斷,此時便有兩層判斷敘述,這就是所謂 的巢狀判斷敘述。

  50. 流程控制- if判斷敘述 • 巢狀判斷敘述,如下所示: if (條件式A){ if (條件式B) 程式敘述一; else 程式敘述二; } else{ if (條件式C) 程式敘述三; else 程式敘述四; }

More Related