java的流程式控制制
控制流程
if()
if()….else
if()…..else if()….else
注意:else只是和其上面的同層的最近的if()來配對。
switch(){
case 'a':……..
case 1:……break;
default:
…………
}
註解:switch()內資料類型為byte short char int類型,只有以上四種類型的才可以在switch()中使用。case塊中不加break時順序執行下面的語句。
迴圈語句
for(int i=0;i<n;i++){}
while(){}
do{} while();-----------注意加分號
例子:
loop:for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(3==j)
{
break loop;//--loop為標籤只能用在迴圈語句中,用於迴圈跳到外層迴圈
}
}
}
辨析:
int x,a=6,b=7;
x=a++ + b++; //----------a=7,b=8,x=13
int x=6;x=~x;//---------------- 6的二進位0110 取反得11001 再轉成補碼(取反加一)10111 = -7
break,跳出本層迴圈,執行後面的代碼,continue,提前終止本次迴圈,再一次進行迴圈或迴圈條件滿足或不滿足後退出迴圈。break 標籤名; continue 標籤名;這兩條語句知識表示跳出有標籤的迴圈和提前終止本次有標籤的迴圈,只能用在迴圈語句(多層迴圈嵌套)中,迴圈嵌套中用於跳到外層迴圈。
注意:for迴圈在使用時一定要注意不要忘記()中的兩個";",死迴圈的寫法for(;;){}或者是用
while(true){}
注意:System.out.println("..."+a)在使用這個語句時,它會將其中非字串(String)的值轉換成字串(不是所有資料類型都可以的)。
java中的數組Array,其包含兩個部分,分別是數組的引用和數組的空間兩部分。
聲明數組
1) 一組相同類型(可以是類)資料的集合;
2) 一個數組是一個對象;
3) 聲明一個數組沒有建立一個對象;
4) 數組能以下列形式聲明:
int[] i 或 int i[]
Car[] c 或 Car c[]
*C++中只能 Car c[]
*JAVA中推薦用 Car[] c;
5)數組的定義 如:
int[] a(數組引用聲明)=new int[10](數組空間的聲明,並把空間首地址賦值給數組的引用)
int[] a;
a=new int[20];
建立數組
1) 建立基礎資料型別 (Elementary Data Type)數組 int[] i = new int[2];
2) 建立引用資料類型數組 Car[] c = new Car[100];
3) 數組建立後有初始值。
數字類型為0 布爾類型為false 參考型別為null
注意:訪問沒有初始化的數組中的值,是會拋出異常的(NullPointerException),java中只保證一位元組的地址是連續的,二維數組實際上是一維數組中有儲存了一維數組的引用。
初始化數組
1) 初始化、建立、和聲明分開
int[] i;
i = new int[2];
i[0] = 0;
i[1] = 1;
2) 初始化、建立、和聲明在同一時間
int[] i = {0,1};
Car[] c = {new Car(),new Car()};
多維陣列
1) 有效定義
int[][] i1 = new int[2][3]; (同時給定一維,二維的空間)
int[][] i2 = new int[2][]; (給定一維的空間,二維空間待定)
i2[0] = new int[2],i2[1] = new int[3];
*C++中 int[][] =new int[][3];有效
2) 無效定義
int[][] i1 = new int[][3];
3) 數組長度 ------------數組的屬性length(在二維數組中這個屬性只代表第一維的長度)
int[] i = new int[5];
int len = i.length;//len = 5;
Student[][] st = new Student[4][6];
len = st.length;//len = 4;
len = st[0].length;//len = 6;
數組拷貝
System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length);
src源數組,srcPos從第幾位開始拷貝,dest目標數組,destPos目標數組放置的起始位置,length,表示要拷貝的長度。
拷貝一個數組到另一個數組。
類的對象的建立和對象數組
一個xxx.Java檔案中可以定義多個類但是只能由一個public修飾的類,也只能以這個類的類名作為.java的檔案名稱。
java中的類的對象的建立,要先建立這個對象的引用, 例如:Car c;然後用new這個關鍵字建立一個對象的執行個體(對象的空間) 例如:c=new Car();,然後對象的執行個體的空間首地址賦值給對象的引用。多個對象的引用可以同時引用自同一個對象的執行個體,但是對象的引用只能引用一個對象的執行個體。
對象的引用和對象的執行個體間就像是牽著氣球的線和氣球一樣。
注意:只有一個沒有被任何 對象的引用 所引用 的對象的執行個體才會邊城垃圾等待被記憶體回收。
對象數組
例:Car[] c=new Car[3];
c[0]=new Car();
注意:存放基本類型的數組的資料是直接存放在數組的空間中,而對象的數組在數組空間中存放的則是對象的引用。
定義在類中類的屬性是執行個體變數,定義在類的方法中的變數是局部變數。執行個體變數是儲存在對象空間中的,而局部變數則是在方法調用的分配空間,調用結束後就釋放空間。
注意:在類的定義中屬性的定義和方法的定義 必須寫在類裡。
注意:系統會自動初始化執行個體變數,數字類型為0 ,布爾類型為false ,參考型別為null。局部變數需要初始化,必須賦初值。如果不賦初值無法通過編譯。
Java中的方法調用中參數傳遞有兩種,一個是對於參數是基本類型的使用的是值傳遞(直接傳參數的值),另一個是引用傳遞,它是用於參數是類的對象,它傳遞的是這個對象的引用。