1212
1313先來解釋一下第 2 章中您所完成的「第一個 Java 程式」,如果您學過 C 語言,對於 3.1.2「給 C 使用者的第一個 Java 程式」可能會覺得比較親切,因為介紹了類似 C 語言中 printf() 函式的功能,另外別忘了在寫程式時加入一些註解文字,這在閱讀程式碼的時候會很有幫助。
1414
15- ## 3.1.1 解釋第一個 Java 程式 #
15+ ## 3.1.1 解釋第一個 Java 程式
1616
1717要對新手解釋第一個 Java 程式事實上並不簡單,因為一個最簡單的 Java 程式就會涉及檔案管理、類別 (Class)、主程式、命令列引數(Command line argument)等觀念,我很想對您說,反正一個基本的 Java 程式就這麼寫就對了,因為要一下子接受這麼多觀念並不容易。總之,如果現階段您無法瞭解,就請當它是 Java 語言的文法規範。
1818
@@ -194,7 +194,7 @@ public class ThirdJavaForC {
194194
195195從互動中學習,是我最喜愛的學習方式,我建議學習 Java 的第一步,要先能看到您的程式執行結果,要可以對程式輸入一些資料,作一些傻瓜式的互動。
196196
197- ## 3.2.1 使用 Scanner 取得輸入 ##
197+ ## 3.2.1 使用 Scanner 取得輸入
198198
199199在文字模式下要輸入資料至程式中時,您可以使用標準輸入串流物件 System.in,然而實際上很少直接使用它,因為 System.in 物件所提供的 read() 方法,是從輸入串流取得一個位元組的資料,並傳回該位元組的整數值,但通常您要取得的使用者輸入會是一個字串,或是一組數字,所以 System.in 物件的 read() 方法一次只讀入一個位元組資料的方式並不適用。
200200
@@ -300,7 +300,7 @@ readLine() 方法會傳回使用者在按下 Enter 鍵之前的所有字元輸
300300>
301301> 但什麼該闕疑?什麼觀念又該先徹底理解?在這本書中我會根據經驗告訴您,在告訴您闕疑的同時,也會告訴您這些觀念實際上在哪個章節(或網路資料上)會詳細說明。
302302
303- ## 3.2.3 標準輸入輸出串流 ##
303+ ## 3.2.3 標準輸入輸出串流
304304
305305在之前的範例程式中,您使用了 System 類別中的靜態物件 out,它提供標準輸出串流(Stream)輸出,會在程式開始執行之後自動開啟並準備接受指定的資料,它通常對應至顯示輸出(文字模式、終端機輸出),您可以將輸出重新導向至一個檔案,只要執行程式時使用'>'將輸出結果導向至指定的檔案,例如:
306306
@@ -436,7 +436,7 @@ public class TigerNumberDemo {
436436
437437電腦的原文是「Computer」,電腦的基本作用其實就是運算,要運算就要給它資料,要告訴電腦您給了它哪些資料?是整數還是小數?是文字還是字元?這就是程式語言術語中所謂的「指定變數與資料型態」!在給定了資料之後,接著您就可以叫電腦開始進行各種算術、邏輯、比較、遞增、遞減等等的運算。
438438
439- ## 3.3.1 資料型態 ##
439+ ## 3.3.1 資料型態
440440
441441程式在執行的過程中,需要運算許多的資訊,也需要儲存許多的資訊,這些資訊可能是由使用者輸入、從檔案中取得,甚至是由網路上得到,在程式運行的過程中,這些資訊透過「變數」(Variable)加以儲存,以便程式隨時取用。
442442
@@ -496,7 +496,7 @@ public class DataRange {
496496
497497其中浮點數所取得是正數的最大與最小範圍,加上負號即為負數可表示的最大與最小範圍。
498498
499- ## 3.3.2 變數、常數 ##
499+ ## 3.3.2 變數、常數
500500
501501
502502資料是儲存在記憶體中的一塊空間中,為了取得資料,您必須知道這塊記憶體空間的位置,然而若使用記憶體位址編號的話相當的不方便,所以使用一個明確的名稱,變數(Variable)是一個資料儲存空間的表示,您將資料指定給變數,就是將資料儲存至對應的記憶體空間,您呼叫變數時,就是將對應的記憶體空間的資料取出供您使用。
@@ -567,7 +567,7 @@ public class VariableDemo {
567567
568568使用 "final" 來限定的變數,目的通常就是不希望其它的程式碼來變動它的值,例如用於迴圈計數次數的指定(迴圈之後就會學到),或是像圓周率 PI 常數的指定。
569569
570- ## 3.3.3 算術運算 ##
570+ ## 3.3.3 算術運算
571571
572572程式的目的簡單的說就是運算,除了運算還是運算,所以加減乘除這類的操作是少不得的,在 Java 中提供運算功能的就是運算子 (Operator),例如與算術相關的有加(+)、減(-)、乘(* )、除(/)這類的運算子,另外還有一個也很常用的餘除運算子(%),這類以數學運算為主的運算子稱之為「算術運算子」(Arithmetic operator)
573573
@@ -622,7 +622,7 @@ public class VariableDemo {
622622
623623 count = (count + 1) % 360;
624624
625- ## 3.3.4 比較、條件運算 ##
625+ ## 3.3.4 比較、條件運算
626626
627627數學上有比較的運算,像是大於、等於、小於等運算,Java 中也提供了這些運算子,這些運算子稱之為「比較運算子」(Comparison operator),它們有大於(>)、不小於(>=)、小於(<)、不大於(<=)、等於(==)以及不等於(!=)。
628628
@@ -705,7 +705,7 @@ public class OddDecider {
705705 請輸入數字: 87
706706 是否為奇數? 是
707707
708- ## 3.3.5 邏輯、位元運算 ##
708+ ## 3.3.5 邏輯、位元運算
709709
710710大於、小於的運算會了,但如果想要同時進行兩個以上的條件判斷呢?例如分數大於 80 「且」小於 90 的判斷。在邏輯上有 所謂的「且」(And)、「或」(Or)與「反」(Inverse),在 Java 中也提供這幾個基本邏輯運算所需的「邏輯運算子」(Logical operator),分別為「且」(&&)、「或」(||)及「反相」(!)三個運算子。
711711來看看範例 3.17 會輸出什麼?
@@ -888,7 +888,7 @@ public class ShiftOperator {
888888
889889> ** 良葛格的話匣子** 位元運算對於沒有學過數位邏輯的初學者來說,會比較難一些,基本上除了像是資訊工程、電機工程相關領域的開發人員會比較常使用位元運算之外,大部份的開發人員可能不常使用位元運算,如果您的專長領域比較不需要使用位元運算,則基本上先瞭解有位元運算這個東西就可以了,不必在這個部份太過鑽研。
890890
891- ## 3.3.6 遞增、遞減運算 ##
891+ ## 3.3.6 遞增、遞減運算
892892
893893遞增(Increment)、遞減(Decrement)與指定(Assignment)運算子,老實說常成為初學者的一個惡夢,因為有些程式中若寫得精簡,這幾個運算子容易讓初學者搞不清楚程式的真正運算結果是什麼;事實上,使用這幾種運算子的目的除了使讓程式看來比較簡潔之外,還可以稍微增加一些程式執行的效率。
894894在程式中對變數遞增1或遞減1是很常見的運算,例如:
@@ -901,7 +901,7 @@ public class ShiftOperator {
901901
902902這段程式會分別顯示出 1 與 0 兩個數,您可以使用遞增、遞減運算子來撰寫程式:
903903
904- #### ** 範例3 .22 IncrementDecrement.java**
904+ #### ** 範例 3 .22 IncrementDecrement.java**
905905``` java
906906public class IncrementDecrement {
907907 public static void main (String [] args ) {
@@ -919,7 +919,7 @@ public class IncrementDecrement {
919919
920920您可以將遞增或遞減運算子撰寫在變數之前或變數之後,但其實兩種寫法是有差別的,將遞增(遞減)運算子撰寫在變數前時,表示先將變數的值加(減)1,然後再傳回變數的值,將遞增(遞減)運算子撰寫在變數之後,表示先傳回變數值,然後再對變數加(減)1,例如:
921921
922- #### ** 範例3 .23 IncrementDecrement2.java**
922+ #### ** 範例 3 .23 IncrementDecrement2.java**
923923``` java
924924public class IncrementDecrement2 {
925925 public static void main (String [] args ) {
@@ -936,7 +936,7 @@ public class IncrementDecrement2 {
936936
937937在這段程式中,number 的值會前後分別顯示為 1 與 0,再看看範例 3.24。
938938
939- #### ** 範例3 .24 IncrementDecrement3.java**
939+ #### ** 範例 3 .24 IncrementDecrement3.java**
940940``` java
941941public class IncrementDecrement3 {
942942 public static void main (String [] args ) {
@@ -955,7 +955,7 @@ public class IncrementDecrement3 {
955955
956956接下來看「指定運算子」(Assignment operator),到目前為止您只看過一個指定運算子,也就是 '=' 這個運算子,事實上指定運算子還有以下的幾個:
957957
958- #### ** 表3 .3 指定運算子**
958+ #### ** 表 3 .3 指定運算子**
959959
960960| 指定運算子| 範例 | 結果
961961| :-------- | :----- | :------
@@ -1024,7 +1024,7 @@ public class IncrementDecrement3 {
10241024
10251025範例 3.25 是個簡單的程式,使用if條件式來判斷使用者的輸入是奇數還是偶數。
10261026
1027- #### ** 範例3 .25 OddDecider3.java**
1027+ #### ** 範例 3 .25 OddDecider3.java**
10281028``` java
10291029import java.util.Scanner ;
10301030
@@ -1158,7 +1158,7 @@ switch 只能比較數值或字元,不過別以為這樣它就比 if 來得沒
11581158
11591159來看看範例 3.26 的成績等級比對如何使用 switch 來改寫。
11601160
1161- #### ** 範例3 .27 ScoreLevel2.java**
1161+ #### ** 範例 3 .27 ScoreLevel2.java**
11621162``` java
11631163import java.util.Scanner ;
11641164
@@ -1283,7 +1283,7 @@ public class NineTable {
12831283
12841284for 括號中的每個陳述區塊是以分號 ';' 作區隔,而在一個陳述區塊中若想寫兩個以上的陳述句,則使用逗號 ',' 作區隔,有興趣的話,看看範例 3.30 中九九乘法表的寫法,它只使用了一個 for 迴圈就可以完成九九乘法表的列印,執行結果與範例 3.29 是一樣的。
12851285
1286- #### ** 範例3 .30 NineTable2.java**
1286+ #### ** 範例 3 .30 NineTable2.java**
12871287``` java
12881288public class NineTable2 {
12891289 public static void main (String [] args ) {
@@ -1312,7 +1312,7 @@ Java 提供 while 迴圈式,它根據您所指定的條件式來判斷是否
13121312
13131313一個計算輸入成績平均的程式如範例 3.31 所示。
13141314
1315- #### ** 範例3 .31 ScoreAverage.java**
1315+ #### ** 範例 3 .31 ScoreAverage.java**
13161316``` java
13171317import java.util.Scanner ;
13181318
@@ -1371,7 +1371,7 @@ while 迴圈有時稱之為「前測式迴圈」,因為它在迴圈執行前
13711371
13721372注意 while 後面是以分號 ';'作為結束,這個很常被忽略;由於 do while 會先執行迴圈,所以它通常用於進行一些初始化或介面溝通的動作,例如範例 3.32 所示。
13731373
1374- #### ** 範例3 .32 OddDecider4.java**
1374+ #### ** 範例 3 .32 OddDecider4.java**
13751375``` java
13761376import java.util.Scanner ;
13771377
@@ -1425,7 +1425,7 @@ continue 的作用與 break 類似,主要使用於迴圈,所不同的是 bre
14251425
14261426break 與 continue 還可以配合標籤使用,例如本來 break 只會離開 for 迴圈,設定標籤與區塊,則可以離開整個區塊,範例 3.33 舉個簡單的示範。
14271427
1428- #### ** 範例3 .33 BreakTest.java**
1428+ #### ** 範例 3 .33 BreakTest.java**
14291429``` java
14301430public class BreakTest {
14311431 public static void main (String [] args ) {
0 commit comments