天天看點

黑馬程式員 Java函數和程式流程控制

----------------------android教育訓練、java教育訓練、期待與您交流! ----------------------

一:程式流程控制 1判斷結構 2選擇結構 3循環結構 1.1判斷結構 if語句 三種格式: 1.if(條件表達式) { 執行語句; } 2.if(條件表達式) { 執行語句; } else { 執行語句; } 3.if(條件表達式) { 執行語句; } else if (條件表達式) { 執行語句; } …… else { 執行語句; } 1.2  if語句特點: a,每一種格式都是單條語句。 b,第二種格式與三元運算符的差別:三元運算符運算完要有值出現。好處是:可以寫在其他表達式中。 c,條件表達式無論寫成什麼樣子,隻看最終的結構是否是true 或者 false 2.1選擇結構 switch語句 格式: switch(表達式) { case 取值1: 執行語句; break; case 取值2: 執行語句; break; …... default: 執行語句; } 2.2switch語句特點:  a,switch語句選擇的類型隻有四種:byte,short,int , char。  b,case之間與default沒有順序。先執行第一個case,沒有比對的case執行default。  c,結束switch語句的兩種情況:遇到break,執行到switch語句結束。  d,如果比對的case或者default沒有對應的break,那麼程式會繼續向下執行,運作可以執行的語句,直到遇到break或者switch結尾結束。 3.1循環結構 代表語句:while , do while , for

while語句格式: while(條件表達式) { 執行語句; }      先判斷邏輯表達式的值。若=true.則執行其後面的語句,然後再次判斷條件并反複執行,直到條件不成立為止 do while語句格式: do { 執行語句; }while(條件表達式); 先執行語句,再判斷邏輯表達式的值,若為true,再執行語句,否則結束循環。 格式: for(初始化表達式;循環條件表達式;循環後的操作表達式) { 執行語句; } 注意: a,for裡面的連個表達式運作的順序,初始化表達式隻讀一次,判斷循環條件,為真就執行循環體,然後再執行循環後的操作表達式,接着繼續判斷循環條件,重複找個過程,直到條件不滿足為止。 b,while與for可以互換,差別在于for為了循環而定義的變量在for循環結束就是在記憶體中釋放。而while循環使用的變量在循環結束後還可以繼續使用。 c,最簡單無限循環格式:while(true) , for(;;),無限循環存在的原因是并不知道循環多少次,而是根據某些條件,來控制循環。 4其他流程控制語句 break(跳出),  continue(繼續) break語句:應用範圍:選擇結構和循環結構。 continue語句:應用于循環結構。 注: a,這兩個語句離開應用範圍,存在是沒有意義的。 b,這個兩個語句單獨存在下面都不可以有語句,因為執行不到。 c,continue語句是結束本次循環繼續下次循環。 d,标号的出現,可以讓這兩個語句作用于指定的範圍

二:函數的定義 1.什麼是函數? •函數就是定義在類中的具有特定功能的一段獨立小程式。 •函數也稱為方法。 2.函數的格式: •修飾符 傳回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,…) { 執行語句; return 傳回值; } 傳回值類型:函數運作後的結果的資料類型。 參數類型:是形式參數的資料類型。 形式參數:是一個變量,用于存儲調用函數時傳遞給函數的實際參數。 實際參數:傳遞給形式參數的具體數值。 return:用于結束函數。 傳回值:該函數運算的結果,該結果會傳回給調用 三:函數的特點 1.定義函數可以将功能代碼進行封裝 2便于對該功能進行複用 3函數隻有被調用才會被執行 4函數的出現提高了代碼的複用性 5對于函數沒有具體傳回值的情況,傳回值類型用關鍵字void表示,那麼該函數中的return語句如果在最後一行可以省略不寫。 注意: •函數中隻能調用函數,不可以在函數内部定義函數。 •定義函數時,函數的結果應該傳回給調用者,交由調用者處理。 四:函數的重載

重載的概念
在同一個類中,允許存在一個以上的同名函數,隻要它們的參數個數或者參數類型不同即可。
重載的特點:
與傳回值類型無關,隻看參數清單。
重載的好處:
友善于閱讀,優化了程式設計。
重載示例:
//傳回兩個整數的和   int add(int x,int y){return x+y;} //傳回三個整數的和   int add(int x,int y,int z){return x+y+z;} //傳回兩個小數的和   double add(double x,double y){return x+y;}

五:數組 1數組的定義

概念
同一種類型資料的集合。其實數組就是一個容器。
數組的好處
可以自動給數組中的元素從0開始編号,友善操作這些元素。
格式1:
元素類型[] 數組名 = new 元素類型[元素個數或數組長度]; 示例:int[] arr = new int[5];
格式2:
元素類型[] 數組名 = new 元素類型[]{元素,元素,……}; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7};

2數組操作常見問題

數組腳标越界異常(ArrayIndexOutOfBoundsException)
int[] arr = new int[2]; System.out.println(arr[ 3]); 通路到了數組中的不存在的腳标時發生。
空指針異常(NullPointerException)
int[] arr = null; System.out.println(arr[0]) ; arr引用沒有指向實體,卻在操作實體中的元素時。

3 數組中的數組

格式1:int[][] arr = new int[3][2];
l 定義了名稱為arr的二維數組 l 二維數組中有3個一維數組 l 每一個一維數組中有2個元素 l 一維數組的名稱分别為arr[0], arr[1], arr[2] l 給第一個一維數組1腳标位指派為78寫法是:arr[0][1] = 78;
格式2:int[][] arr = new int[3][];
l 二維數組中有3個一維數組 l 每個一維數組都是預設初始化值null l 可以對這個三個一維數組分别進行初始化   arr[0] = new int[3];   arr[1] = new int[1];   arr[2] = new int[2];
格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
l 定義一個名稱為arr的二維數組 l 二維數組中的有三個一維數組 l 每一個一維數組中具體元素也都已初始化 l 第一個一維數組 arr[0] = {3,8,2}; l 第二個一維數組 arr[1] = {2,7}; l 第三個一維數組 arr[2] = {9,0,1,6}; l 第三個一維數組的長度表示方式:arr[2].length;
練習:擷取arr數組中所有元素的和。使用for的嵌套循環即可。
注意特殊寫法情況:int[] x,y[]; x是一維數組,y是二維數組。

----------------------android教育訓練、java教育訓練、期待與您交流! ----------------------