-
java5引入了一種主要用於數組或集合的增強型for循環
-
java增強for循環語法格式如下:
for(聲明語句:表達式)
{
//代碼句子
}
-
聲明語句:聲明新的局量變化,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
-
表達式:表達式是要訪問的數組名,或者是返回值為數組的方法
break continue
-
break在任何循環的主題部分,均可用break控住循環的流程。break用於強行退出循環,不執行循環中剩余的語句(break語句也在switch語句中使用)
-
continue語句用在循環語句體中,用於終止某次循環過程,即跳過循環體尚未執行的語句,接着進行下一次是否執行循環的判斷
關於goto關鍵字
-
goto關鍵字很早就在程序設置語言中出現,盡管goto仍是java的一個保留字,但並未在語言中得到正式使用;java沒有goto。然而,在break和continue這兩個關鍵字上,我們仍然能看到一些goto的影子---帶標簽的break和continue。
-
“標簽”是指后面跟一個冒號的標識符。如:label:
-
對java來說唯一用到標簽的地方是循環語句之前。而在循環語句之前設置標簽的唯一理由是:我們希望在其中嵌套另一個循環,由於break和continue關鍵字通常只中斷當前循環,但若隨同標簽使用,它們就會中斷到存在標簽的地方。
java方法詳解
何為方法?
-
System.out.println(),它是什么?
System是一個類,out是類下輸出的對象,println()是一個方法
-
java方法是語句的集合,它們在一起執行一個功能。
-
方法是解決一類問題的步驟的有序組合
-
方法包含與類或對象中
-
方法在程序中被創建,在其他地方被引用
-
設計方法的原則:方法的本意是功能塊,就是實現某個功能的語句塊的集合。我們設計方法的時候,最好保持方法的原子性,就是一個方法只完成一個功能,這樣利於我們后期的擴展
方法的定義
-
java的方法類似於其他語言的函數,是一段用來完成特定功能的代碼片段,一般情況下,定義一個方法包含以下語法:
-
方法包含一個方法頭和一個方法體,下面是一個方法的所有部分:
-
修飾符:修飾符,這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪問類型
-
返回值類型:方法可能會返回值。returnValueType是方法返回值的數據類型,有些方法執行所需的操作,但沒有返回值,在這種情況下,returnValueType是關鍵字void
-
方法名:是方法的實際名稱,方法名和參數表共同構成方法簽名。
-
參數類型:參數像是一個占位符。當方法被調用時,傳送值給參數。這個值稱為實參或者變量。參數列表是指方法的參數類型、順序和參數的個數。參數是可選的,方法可以不包含任和參數。
-
-
形式參數:在方法被調用時用於接受外界輸入的數據
-
實參:調用方法時實際傳給方法的數據。
-
-
方法體:方法體包含具體的語句,定義該方法的功能
修飾符 返回值類型 方法名(參數類型 參數名){
---
方法體
---
return 返回值;
}
方法調用
-
調用方法:對象類,方法名(實參列表)
-
java支持兩種調用方法的方式,根據方法是否返回值來選擇
-
當方法返回值的時候,方法調用通常被當做成一個值。例如:
int larger = max(30,40);
-
如果方法返回值是void,方法調用一定是一條語句
System.out.println("Hello,World!");
java是值傳遞
方法的重載
-
重載就是在一個類中,有相同的函數名稱,但形參不同的函數
-
方法的重載的規則:
-
-
方法名稱必須相同
-
參數列表必須不同(個數不同或類型不同、參數排列順序不同等)
-
方法的返回類型可以相同也可以不相同
-
僅僅返回類型不同不足以稱為方法的重載
-
-
實現理論:
-
-
方法名稱相同時,編譯器會根據調用方法的參數個數、參數類型等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯
-
命令行傳參
-
有時候你希望運行一個程序的時候再給它傳遞信息,這要靠傳遞命令行參數給main()函數實現
public class CommandLine{
public static void main(String args[]){
for(int i=0;i < args.length;i++){
System.out.println("args["+i+"]:"args[i]);
}
}
}
可變參數
-
JDK1.5開始,java支持傳遞同類型的可變參數給一個方法
-
在方法聲明中,在指定參數類型后加一個省略號(…)
-
一個方法中只能指定一個可變參數,它必須是方法的最后一個參數。任何普通參數都必須在它之前聲明
public static void printMax( double... numbers) {
if(numbers.length == 0) {
System.out.println("No argument passed");
return;
}
double result = numbers[0];
//排序!!
for(int i =1; i < numbers.length;i++){
if(numbers[i] > result){
result = numbers[i];
}
}
System.out.println("The max value is" + result);
}
遞歸
-
A方法調用B方法
-
遞歸:A方法調用A方法,自己調用自己
-
利用遞歸可以用簡單的程序來解決一些復雜的問題。它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合
-
遞歸結構包括兩部分:
-
-
遞歸頭:什么時候不調用自身方法。如果沒有頭,將陷入死循環
-
遞歸體:什么時候需要調用自身方法
-
-
