1. 程式人生 > >讀書筆記(二)瘋狂JAVA講義 第四章 控制迴圈與陣列

讀書筆記(二)瘋狂JAVA講義 第四章 控制迴圈與陣列

流程控制比較簡單,沒有什麼可寫的,但有些地方需要注意。

※ 使用if...else語句時,一般先處理包含範圍更小的情況。

4.2.2  Java 7的switch語句

switch語句由一個控制表示式和多個case標籤組成,和if語句不同的是,switch語句後面的控制表示式的資料型別只能是byte、short、char、int四個整數型別和列舉型別,不能是Boolean型別。Java 7改進了switch分支語句,Java 7允許switch語句中的控制表示式位Java.lang.String型別

switch(expression){

case con1:{

statemts(s)

break;

}

case con2:{

statemts(s)

break;

}

default:{

statemts(s)

}

}

=================================================

for迴圈圓括號中只有兩個分號是必需的,初始化語句、迴圈條件、迭代語句部分都是可以省略的,如果省略了迴圈條件,則這個迴圈條件預設是true,將會產生一個死迴圈。

for(  ;   ;    ){
            System.out.println("===");
        }

4.4 控制迴圈結構

4.4.1 使用break結束迴圈

break用於完全結束一個迴圈,跳出迴圈體。

break語句不僅可以結束其所在的迴圈,還可以直接結束其外層迴圈。此時需要在break後緊跟一個標籤,這個標籤用於標識一個外層迴圈。如下:

<span>	</span>out :
        for (int i = 0; i <10 ; i++) {
            for (int j = 0; j <10 ; j++) {
                if (j == 5) {
                    break out;
                }
                System.out.println(i+"---"+j);
            }
        }

4.4.2 使用continue結束本次迴圈

continue的功能和break有點類似,區別是continue只是終止本次迴圈,接著開始下一次迴圈;而break則是完全終止迴圈本身。可以理解為continue的作用是跳過當次迴圈中剩下的語句,重新開始一個新的迴圈。

與break類似的是,continue後可以緊跟一個標籤,用於直接跳過標籤所標識迴圈的檔次迴圈的剩下語句,重新開始下一次迴圈。

<span>	</span>out :
        for (int i = 0; i <3 ; i++) {
            for (int j = 0; j <3 ; j++) {
                if (j == 2) {
                    continue out;
                }
                System.out.println(i+"---"+j);
            }
        }

輸出

0---0
0---1
1---0
1---1
2---0
2---1

4.4.3 使用return結束方法

return 關鍵字並不是專門用來結束迴圈的,return的功能是結束一個方法。遇到return則整個方法結束,不管這個return處於多少層迴圈之中。

4.5 陣列型別

4.5.1 理解陣列:陣列也是一種型別

Java的陣列要求所有的陣列元素具有相同的資料型別。

一旦陣列的初始化完成,陣列在記憶體中所佔的空間將被固定下來,因此陣列的長度將不可改變。即使把某個陣列元素的資料情況,但它所佔的空間依然被保留,依然屬於該陣列,陣列的長度依然不變。

值得指出的是,陣列也是一種資料型別,它本身是一種引用型別。例如int是一個基本型別,但int[]就是一種引用型別了。

4.5.2 定義陣列

定義陣列的兩種語法格式:

type [ ] arrayName;//推薦使用這種

type arrayName [ ];  

陣列是一種引用型別的變數,因此使用它定義一個變數時,僅僅表示定義了一個引用變數(也就是定義了一個指標),這個引用變數還未指向任何有效的記憶體,因此定義陣列時不能指定陣列的長度。

4.5.3 陣列的初始化

Java語言中陣列必須先初始化,然後才可以使用。所謂初始化,就是為陣列元素分配記憶體空間,併為每個陣列元素賦初始值。

只要為陣列元素分配了記憶體空間,陣列元素就具有了初始值。初始值的獲得由兩種形式:一種是由系統自動分配,另一種由程式設計師指定。

陣列的初始化有兩種方式:

1、靜態初始化:初始化時由程式設計師顯示指定每個陣列元素的初始值,由系統決定陣列長度。

arrayName=new type[ ] {element1,element2,element3.....};

int [ ] intArr;

intArr=new int [ ]{4,5,6,7};

Object[ ] objArr;

objArr=new String [ ]{"Java","李剛"};

2、動態初始化:初始化時程式設計師指定陣列長度,由系統為陣列元素分配初始值。

arrayName=new type[length];

執行動態初始化時,程式設計師只需要指定陣列的長度,即為每個陣列元素指定所需的記憶體空間,系統將負責為這些陣列元素分配初始值。

陣列元素的型別是基本型別中的整數型別(byte、short、int、long),則陣列元素的值為0.

陣列元素的型別是基本型別中的浮點型別(float、double),則陣列元素的值時0.0.

陣列元素的型別是基本型別中的字元型別(char),則陣列元素的值是‘\u0000’.

陣列元素的型別是基本型別中的布林型別(boolean),則陣列元素的值時false.

陣列元素的型別是引用型別(類、介面和陣列),則陣列元素的值時null。