Java基礎第2章課件_第1頁
Java基礎第2章課件_第2頁
Java基礎第2章課件_第3頁
Java基礎第2章課件_第4頁
Java基礎第2章課件_第5頁
已閱讀5頁,還剩114頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章Java編程基礎Java的基本語法格式Java語言中的常量與變量Java語言運算符的使用Java程序的流程控制Java中方法的定義與使用Java中數(shù)組的定義與使用2.1Java的基本語法2.2Java中的變量2.3Java中的運算符2.4選擇結構語句2.5循環(huán)結構語句2.5方法2.1Java的基本語法2.1.1Java代碼的基本格式Java中的程序代碼都必須放在一個類中。類需要使用class關鍵字定義,在class前面可以有一些修飾符,格式如下:Java代碼關鍵點1、Java中的程序代碼可分為結構定義語句和功能執(zhí)行語句,其中,結構定義語句用于聲明一個類或方法,功能執(zhí)行語句用于實現(xiàn)具體的功能。每條功能執(zhí)行語句的最后都必須用分號(;)結束。2、Java語言是嚴格區(qū)分大小寫的。Java代碼關鍵點3、雖然Java沒有嚴格要求用什么樣的格式來編排程序代碼,但是,出于可讀性的考慮,應該讓自己編寫的程序代碼整齊美觀、層次清晰。以下兩種方式都可以,但是建議使用后一種。Java代碼關鍵點4、Java程序中一句連續(xù)的字符串不能分開在兩行中書寫,例如,下面這條語句在編譯時將會出錯:如果為了便于閱讀,想將一個太長的字符串分在兩行中書寫,可以先將這個字符串分成兩個字符串,然后用加號(+)將這兩個字符串連起來,在加號(+)處斷行,上面的語句可以修改成如下形式:2.1Java的基本語法2.1.2Java中的注釋在編寫程序時,為了使代碼易于閱讀,通常會在實現(xiàn)功能的同時為代碼加一些注釋。注釋是對程序的某個功能或者某行代碼的解釋說明,它只在Java源文件中有效,在編譯程序時編譯器會忽略這些注釋信息,不會將其編譯到class字節(jié)碼文件中去。Java中的注釋有三種類型,具體如下:單行注釋單行注釋通常用于對程序中的某一行代碼進行解釋,用符號“//”表示,“//”后面為被注釋的內容,具體示例如下:2.1Java的基本語法2.1.2Java中的注釋多行注釋多行注釋顧名思義就是在注釋中的內容可以為多行,它以符號“/*”開頭,以符號“*/”結尾,多行注釋具體示例如下:文檔注釋文檔注釋是以“/**”開頭,并在注釋內容末尾以“*/”結束。文檔注釋是對代碼的解釋說明,可以使用javadoc命令將文檔注釋提取出來生成幫助文檔,關于這點將在后面的章節(jié)做詳細講解。腳下留心在Java中,有的注釋可以嵌套使用,有的則不可以,下面列出兩種具體的情況。1、多行注釋“/*…*/”中可以嵌套單行注釋“//”,例如:2、多行注釋“/*…*/”中不能嵌套多行注釋“/*…*/”,例如:上面的代碼無法通過編譯,原因在于第一個“/*”會和第一個“*/”進行配對,而第二個“*/”則找不到匹配。2.1Java的基本語法2.1.3Java中的標識符在編程過程中,經常需要在程序中定義一些符號來標記一些名稱,如,包名、類名、方法名、參數(shù)名、變量名等,這些符號被稱為標識符。標識符可以由任意順序的大小寫字母、數(shù)字、下劃線(_)和美元符號($)組成,但不能以數(shù)字開頭,不能是Java中的關鍵字。2.1Java的基本語法2.1.3Java中的標識符建議初學者在定義標識符時還應該遵循以下規(guī)則:1、包名所有字母一律小寫。例如:cn.itcast.test。2、類名和接口名每個單詞的首字母都要大寫。如:ArrayList、Iterator。3、常量名所有字母都大寫,單詞之間用下劃線連接。例如:DAY_OF_MONTH。4、變量名和方法名的第一個單詞首字母小寫,從第二個單詞開始每個單詞首字母大寫。例如:lineNumber、getLineNumber。5、在程序中,應該盡量使用有意義的英文單詞來定義標識符,使得程序便于閱讀。例如使用userName表示用戶名,password表示密碼。2.1Java的基本語法2.1.4Java中的關鍵字關鍵字是編程語言里事先定義好并賦予了特殊含義的單詞,也稱作保留字。和其它語言一樣,Java中保留了許多關鍵字,例如,class、public等,下面列舉的是Java中所有的關鍵字。2.1Java的基本語法2.1.4Java中的關鍵字使用Java關鍵字時,有幾個值得注意的地方,如下所示:所有的關鍵字都是小寫的。程序中的標識符不能以關鍵字命名。2.1.5Java中的常量常量就是在程序中固定不變的值,是不能改變的數(shù)據(jù)。在Java中,常量包括整型常量、浮點數(shù)常量、布爾常量、字符常量等。Java中的常量1、整型常量整型常量是整數(shù)類型的數(shù)據(jù),具體表示形式如下:二進制:由數(shù)字0和1組成的數(shù)字序列。在JDK7.0中允許使用字面值來表示二進制數(shù),前面要以0b或0B開頭,目的是為了和十進制進行區(qū)分,如:0b01101100、0B10110101。八進制:以0開頭并且其后由0~7范圍(包括0和7)內的整數(shù)組成的數(shù)字序列,如:0342。十進制:由數(shù)字0~9范圍(包括0和9)內的整數(shù)組成的數(shù)字序列。如:198。整數(shù)以十進制表示時,第一位不能是0,0本身除外十六進制:以0x或者0X開頭并且其后由0~9、A~F(包括0和9、A和F)組成的數(shù)字序列,如0x25AF。Java中的常量3、字符常量字符常量用于表示一個字符,一個字符常量要用一對英文半角格式的單引號('')引起來,它可以是英文字母、數(shù)字、標點符號、以及由轉義序列來表示的特殊字符。具體示例如下:上面的示例中,'\u0000'表示一個空白字符,即在單引號之間沒有任何字符。之所以能這樣表示是因為,Java采用的是Unicode字符集,Unicode字符以\u開頭,空白字符在Unicode碼表中對應的值為'\u0000'。Java中的常量4、字符串常量字符串常量用于表示一串連續(xù)的字符,一個字符串常量要用一對英文半角格式的雙引號("")引起來,具體示例如下:一個字符串可以包含一個字符或多個字符,也可以不包含任何字符,即長度為零。Java中的常量5、布爾常量布爾常量即布爾型的兩個值true和false,該常量用于區(qū)分一個事物的真與假。6、null常量null常量只有一個值null,表示對象的引用為空。關于null常量將會在第三章中詳細介紹。多學一招特殊字符——反斜杠(\)反斜杠(\)是一個特殊的字符,被稱為轉義字符,它的作用是用來轉義后面一個字符。下面列出一些常見的轉義字符:\r表示回車,將光標定位到當前行的開頭,不會跳到下一行。\n表示換行,換到下一行的開頭。\t表示制表符,將光標移到下一個制表符的位置,就像在文檔中用Tab鍵一樣。\b表示退格符號,就像鍵盤上的Backspace。多學一招特殊字符——反斜杠(\)剛才介紹的字符都有特殊意義,無法直接表示,所以用斜杠加上另外一個字符來表示。\'表示單引號字符,Java代碼中單引號表示字符的開始和結束,如果直接寫單引號字符('),程序會認為前兩個是一對,會報錯,因此需要使用轉義(\')。\"表示雙引號字符,Java代碼中雙引號表示字符串的開始和結束,包含在字符串中的雙引號需要轉義,比如"hesays,\"thankyou\"."。\\表示反斜杠字符,由于在Java代碼中的斜杠\是轉義字符,因此需要表示字面意義上的\,就需要使用雙斜杠\\。多學一招整型常量進制間的轉換十進制轉二進制十進制轉換成二進制就是一個除以2取余數(shù)的過程。把要轉換的數(shù),除以2,得到商和余數(shù),將商繼續(xù)除以2,直到商為0。最后將所有余數(shù)倒序排列,得到數(shù)就是轉換結果。三次除以2計算得到余數(shù)依次是:0、1、1,將所有余數(shù)倒序排列是:110。所以十進制的6轉換成二進制,結果是110。多學一招整型常量進制間的轉換二進制轉十進制要從右到左用二進制位上的每個數(shù)去乘以2的相應次方。多學一招整型常量進制間的轉換二進制轉八進制二進制轉八進制時,首先需要將二進制數(shù)自右向左每三位分成一段,然后將二進制的每段的三位數(shù)轉為八進制的一位。多學一招整型常量進制間的轉換二進制轉十六進制將二進制轉十六進制時,與轉八進制類似,不同的是要將二進制數(shù)每四位分成一段,查表轉換即可。2.2Java中的變量2.2.1變量的定義在程序運行期間,隨時可能產生一些臨時數(shù)據(jù),應用程序會將這些數(shù)據(jù)保存在一些內存單元中,每個內存單元都用一個標識符來標識。這些內存單元我們稱之為變量,定義的標識符就是變量名,內存單元中存儲的數(shù)據(jù)就是變量的值。上面的代碼中,第一行代碼的作用是定義了兩個變量x和y,也就相當于分配了兩塊內存單元,在定義變量的同時為變量x分配了一個初始值0,而變量y沒有分配初始值,變量x和y在內存中的狀態(tài)如圖所示。2.2Java中的變量2.2.1變量的定義在程序運行期間,隨時可能產生一些臨時數(shù)據(jù),應用程序會將這些數(shù)據(jù)保存在一些內存單元中,每個內存單元都用一個標識符來標識。這些內存單元我們稱之為變量,定義的標識符就是變量名,內存單元中存儲的數(shù)據(jù)就是變量的值。第二行代碼的作用是為變量賦值,在執(zhí)行第二行代碼時,程序首先取出變量x的值,與3相加后,將結果賦值給變量y,此時變量x和y在內存中的狀態(tài)發(fā)生了變化,如圖所示。2.2Java中的變量2.2.2變量的數(shù)據(jù)類型Java是一門強類型的編程語言,它對變量的數(shù)據(jù)類型有嚴格的限定。在定義變量時必須聲明變量的類型,在為變量賦值時必須賦予和變量同一種類型的值,否則程序會報錯。Java中的基本數(shù)據(jù)類型1、整數(shù)類型變量用來存儲整數(shù)數(shù)值,即沒有小數(shù)部分的值。整數(shù)類型分為4種不同的類型:字節(jié)型(byte)、短整型(short)、整型(int)和長整型(long)。占用空間指的是不同類型的變量分別占用的內存大小取值范圍是變量存儲的值不能超出的范圍Java中的基本數(shù)據(jù)類型1、整數(shù)類型變量為一個long類型的變量賦值時需要注意一點,所賦值的后面要加上一個字母“L”(或小寫“l(fā)”),說明賦值為long類型。如果賦的值未超出int型的取值范圍,則可以省略字母“L”(或小寫“l(fā)”)。Java中的基本數(shù)據(jù)類型2、浮點數(shù)類型變量浮點數(shù)類型變量用來存儲小數(shù)數(shù)值。浮點數(shù)類型分為兩種:單精度浮點數(shù)(float)、雙精度浮點數(shù)(double),double型所表示的浮點數(shù)比float型更精確。在取值范圍中,E表示以10為底的指數(shù),E后面的“+”號和“-”號代表正指數(shù)和負指數(shù),例如1.4E-45表示1.4*10-45。Java中的基本數(shù)據(jù)類型2、浮點數(shù)類型變量在為一個float類型的變量賦值時需要注意一點,所賦值的后面一定要加上字母“F”(或“f”),而為double類型的變量賦值時,可以在所賦值的后面加上字符“D”(或“d”),也可不加。在程序中也可以為一個浮點數(shù)類型變量賦予一個整數(shù)數(shù)值.Java中的基本數(shù)據(jù)類型3、字符類型變量用于存儲一個單一字符,在Java中用char表示。每個char類型的字符變量都會占用2個字節(jié)。賦值時,要用英文半角格式的單引號('')把字符括起來,如'a',也可以賦值為0~65535范圍內的整數(shù),計算機會自動將這些整數(shù)轉化為所對應的字符,如數(shù)值97對應的字符為'a'。Java中的基本數(shù)據(jù)類型4、布爾類型變量布爾類型變量用來存儲布爾值,在Java中用boolean表示,該類型的變量只有兩個值,即true和false。具體示例如下:2.2Java中的變量2.2.3變量的類型轉換當把一種數(shù)據(jù)類型的值賦給另一種數(shù)據(jù)類型的變量時,需要進行數(shù)據(jù)類型轉換。根據(jù)轉換方式的不同,數(shù)據(jù)類型轉換可分為兩種:自動類型轉換和強制類型轉換。2.2Java中的變量2.2.3變量的類型轉換1、自動類型轉換也叫隱式類型轉換,指的是兩種數(shù)據(jù)類型在轉換的過程中不需要顯式地進行聲明。要實現(xiàn)自動類型轉換,必須同時滿足兩個條件,第一是兩種數(shù)據(jù)類型彼此兼容,第二是目標類型的取值范圍大于源類型的取值范圍。2.2Java中的變量2.2.3變量的類型轉換1、自動類型轉換三種可以進行自動類型轉換的情況,具體如下:(1)整數(shù)類型之間可以實現(xiàn)轉換,如byte類型的數(shù)據(jù)可以賦值給short、int、long類型的變量,short、char類型的數(shù)據(jù)可以賦值給int、long類型的變量,int類型的數(shù)據(jù)可以賦值給long類型的變量。(2)整數(shù)類型轉換為float類型,如byte、char、short、int類型的數(shù)據(jù)可以賦值給float類型的變量。(3)其它類型轉換為double類型,如byte、char、short、int、long、float類型的數(shù)據(jù)可以賦值給double類型的變量。2.2Java中的變量2.2.3變量的類型轉換2、強制類型轉換也叫顯式類型轉換,指的是兩種數(shù)據(jù)類型之間的轉換需要進行顯式地聲明。當兩種類型彼此不兼容,或者目標類型取值范圍小于源類型時,自動類型轉換無法進行,這時就需要進行強制類型轉換。2.2Java中的變量2.2.3變量的類型轉換2、強制類型轉換出現(xiàn)這樣錯誤的原因是將一個int型的值賦給byte類型的變量b時,int類型的取值范圍大于byte類型的取值范圍,這樣的賦值會導致數(shù)值溢出,也就是說一個字節(jié)的變量無法存儲四個字節(jié)的整數(shù)值。2.2Java中的變量2.2.3變量的類型轉換2、強制類型轉換在對變量進行強制類型轉換時,會發(fā)生取值范圍較大的數(shù)據(jù)類型向取值范圍較小的數(shù)據(jù)類型的轉換,如將一個int類型的數(shù)轉為byte類型,這樣做極容易造成數(shù)據(jù)精度的丟失。2.2Java中的變量2.2.3變量的類型轉換2、強制類型轉換例程2-2中的第5行發(fā)生了強制類型轉換,將一個int類型的變量b強制轉換成byte類型,然后再將強轉后的結果賦值給變量a。變量b本身的值為“298”,然而在賦值給變量a后,其值為42,丟失了精度。出現(xiàn)這種現(xiàn)象的原因是,變量b為int類型,在內存中占用4個字節(jié)。byte類型的數(shù)據(jù)在內存中占用1個字節(jié),當將變量b的類型強轉為byte類型后,前面3個高位字節(jié)的數(shù)據(jù)丟失,數(shù)值發(fā)生改變。多學一招表達式類型自動提升所謂表達式是指由變量和運算符組成的一個算式。變量在表達式中進行運算時,也有可能發(fā)生自動類型轉換,這就是表達式數(shù)據(jù)類型的自動提升,如一個byte型的變量在運算期間類型會自動提升為int型。多學一招表達式類型自動提升圖2-9中出現(xiàn)了錯誤,是因為在表達式b1+b2運算期間,變量b1和b2被自動提升為int型,表達式的運算結果也就成了int型,這時如果將該結果賦給byte型的變量就會報錯,此時需要進行強制類型轉換。2.2Java中的變量2.2.4變量的作用域變量需要在它的作用范圍內才可以被使用,這個作用范圍稱為變量的作用域。在程序中,變量一定會被定義在某一對大括號中,該大括號所包含的代碼區(qū)域便是這個變量的作用域。2.2Java中的變量2.2.4變量的作用域2.2Java中的變量2.2.4變量的作用域例程2-4出錯的原因在于在給變量y賦值時超出了它的作用域。將第9行代碼去掉,再次編譯程序不再報錯。例程2-4修改后的代碼中,變量x、y都在各自的作用域中,因此都可以被訪問到。2.3Java中的運算符在程序中經常出現(xiàn)一些特殊符號,如+、-、*、=、>等,這些特殊符號稱作運算符。運算符用于對數(shù)據(jù)進行算術運算、賦值和比較等操作。在Java中,運算符可分為算術運算符、賦值運算符、比較運算符、邏輯運算符和位運算符。2.3.1算數(shù)運算符2.3Java中的運算符2.3.1算數(shù)運算符接下來就針對其中比較重要的幾點進行詳細地講解,具體如下:1、在進行自增(++)和自減(--)的運算時,如果運算符(++或--)放在操作數(shù)的前面則是先進行自增或自減運算,再進行其它運算。反之,如果運算符放在操作數(shù)的后面則是先進行其它運算再進行自增或自減運算。2.3Java中的運算符定義了三個int類型的變量a、b、x。其中a=1、b=2。當進行“a+b++”運算時,由于運算符++寫在了變量b的后面,屬于先運算再自增,因此變量b在參與加法運算時其值仍然為2,x的值應為3。變量b在參與運算之后會進行自增,因此b的最終值為3。2.3.1算數(shù)運算符2、在進行除法運算時,當除數(shù)和被除數(shù)都為整數(shù)時,得到的結果也是一個整數(shù)。如果除法運算有小數(shù)參與,得到的結果會是一個小數(shù)。結果為3000。由于表達式的執(zhí)行順序是從左到右,所以先執(zhí)行除法運算3500/1000,得到結果為3,再乘以1000,得到的結果自然就是3000了。3、在進行取模(%)運算時,運算結果的正負取決于被模數(shù)(%左邊的數(shù))的符號,與模數(shù)(%右邊的數(shù))的符號無關。如:(-5)%3=-2,而5%(-3)=2。2.3Java中的運算符2.3.2賦值運算符賦值運算符的作用就是將常量、變量或表達式的值賦給某一個變量。2.3Java中的運算符2.3.2賦值運算符在賦值運算符的使用中,需要注意以下幾個問題:1、在Java中可以通過一條賦值語句對多個變量進行賦值。在上述代碼中,一條賦值語句將變量x,y,z的值同時賦值為5。需要特別注意的是,下面的這種寫法在Java中是不可以的。2、除了“=”,其它的都是特殊的賦值運算符,以“+=”為例,x+=3就相當于x=x+3,首先會進行加法運算x+3,再將運算結果賦值給變量x。-=、*=、/=、%=賦值運算符都可依此類推。2.3Java中的運算符多學一招在為變量賦值時,當兩種類型彼此不兼容,或者目標類型取值范圍小于源類型時,需要進行強制類型轉換。然而在使用+=、-=、*=、/=、%=運算符進行賦值時,強制類型轉換會自動完成,程序不需要做任何顯式地聲明。2.3.3比較運算符比較運算符用于對兩個數(shù)值或變量進行比較,其結果是一個布爾值,即true或false。比較運算符在使用時需要注意一個問題,不能將比較運算符“==”誤寫成賦值運算符“=”。2.3Java中的運算符2.3.4邏輯運算符邏輯運算符用于對布爾型的數(shù)據(jù)進行操作,其結果仍是一個布爾型。2.3Java中的運算符2.3.4邏輯運算符在使用邏輯運算符的過程中,需要注意以下幾個細節(jié):1、邏輯運算符可以針對結果為布爾值的表達式進行運算。如:x>3&&y!=0。2、運算符“&”和“&&”都表示與操作,當且僅當運算符兩邊的操作數(shù)都為true時,其結果才為true,否則結果為false。當運算符“&”和“&&”的右邊為表達式時,兩者在使用上還有一定的區(qū)別。在使用“&”進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算。如果使用“&&”進行運算,當左邊為false時,右邊的表達式不會進行運算,因此“&&”被稱作短路與。2.3Java中的運算符2.3.4邏輯運算符2.3Java中的運算符2.3.4邏輯運算符在使用邏輯運算符的過程中,需要注意以下幾個細節(jié):3、運算符“|”和“||”都表示或操作,當運算符兩邊的操作數(shù)任何一邊的值為true時,其結果為true,當兩邊的值都為false時,其結果才為false。同與操作類似,“||”表示短路或,當運算符“||”的左邊為true時,右邊的表達式不會進行運算。2.3Java中的運算符4、運算符“^”表示異或操作,當運算符兩邊的布爾值相同時(都為true或都為false),其結果為false。當兩邊布爾值不相同時,其結果為true。2.3.5位運算符2.3Java中的運算符位運算符是針對二進制數(shù)的每一位進行運算的符號,它是專門針對數(shù)字0和1進行操作的。2.3.5位運算符下面的運算都是針對一個byte類型的數(shù),也就是一個字節(jié)大小的數(shù),具體如下:1、與運算符“&”是將參與運算的兩個二進制數(shù)進行與運算,如果兩個二進制位都為1,則該位的運算結果為1,否則為0。例如將6與11進行與運算,一個byte類型的數(shù)字6對應的二進制數(shù)為00000110,數(shù)字11對應的二進制數(shù)為00001011,具體演算過程如下所示:2.3Java中的運算符2.3.5位運算符2、位運算符“|”是將參與運算的兩個二進制數(shù)進行“或”運算,如果二進制位上有一個值為1,則該位的運行結果為1,否則為0。例如將6與11進行或運算。2.3Java中的運算符3、位運算符“~”只針對一個操作數(shù)進行操作,如果二進制位是0,則取反值為1;如果是1,則取反值為0。例如將6進行取反運算。2.3.5位運算符4、位運算符“^”是將參與運算的兩個二進制數(shù)進行“異或”運算,如果二進制位相同,則值為0,否則為1。例如將6與11進行異或運算。2.3Java中的運算符5、位運算符“<<”就是將操作數(shù)所有二進制位向左移動一位。運算時,右邊的空位補0。左邊移走的部分舍去。例如一個byte類型的數(shù)字11用二進制表示為00001011,將它左移一位2.3.5位運算符6、位運算符“>>“就是將操作數(shù)所有二進制位向右移動一位。運算時,左邊的空位根據(jù)原數(shù)的符號位補0或者1(原來是負數(shù)就補1,是正數(shù)就補0)。例如一個byte的數(shù)字11用二進制表示為00001011,將它右移一位,2.3Java中的運算符7、位運算符“>>>”就是將操作數(shù)所有二進制位向右移動一位。運算時,左邊的空位補0(不考慮原數(shù)正負)。例如一個byte的11用二進制表示為00001011,將它無符號右移一位。2.3.6運算符的優(yōu)先級在對一些比較復雜的表達式進行運算時,要明確表達式中所有運算符參與運算的先后順序,把這種順序稱作運算符的優(yōu)先級。2.3Java中的運算符2.4選擇結構語句Java中有一種特殊的語句叫做選擇語句,它也需要對一些條件作出判斷,從而決定執(zhí)行哪一段代碼。選擇語句分為if條件語句和switch條件語句。2.4.1if條件語句if條件語句分為三種語法格式,每一種格式都有其自身的特點。1、if語句:如果滿足某種條件,就進行某種處理。2.4選擇結構語句2.4.1if條件語句1、if語句:如果滿足某種條件,就進行某種處理。上述格式中,判斷條件是一個布爾值,當判斷條件為true時,{}中的執(zhí)行語句才會執(zhí)行。2.4選擇結構語句2.4.1if條件語句1、if語句:如果滿足某種條件,就進行某種處理。2.4選擇結構語句2.4.1if條件語句2、if…else語句:指如果滿足某種條件,就進行某種處理,否則就進行另一種處理。2.4選擇結構語句2.4.1if條件語句2、if…else語句:指如果滿足某種條件,就進行某種處理,否則就進行另一種處理。多學一招在Java中有一種特殊的運算叫做三元運算,它和if-else語句類似,語法如下:三元運算通常用于對某個變量進行賦值,當判斷條件成立時,運算結果為表達式1的值,否則結果為表達式2的值。2.4選擇結構語句2.4.1if條件語句3、if…elseif…else語句:用于對多個條件進行判斷,進行多種不同的處理。2.4選擇結構語句2.4.1if條件語句3、if…elseif…else語句2.4選擇結構語句2.4.2switch條件語句只能針對某個表達式的值作出判斷,從而決定程序執(zhí)行哪一段代碼。2.4選擇結構語句2.4.2switch條件語句只能針對某個表達式的值作出判斷,從而決定程序執(zhí)行哪一段代碼。在switch語句中的表達式只能是byte、short、char、int、enum(JDK5.0)、String(JDK7.0)類型的值,如果傳入其它類型的值,程序會報錯。2.4選擇結構語句2.4.2switch條件語句只能針對某個表達式的值作出判斷,從而決定程序執(zhí)行哪一段代碼?!?.4選擇結構語句2.4.2switch條件語句在使用switch語句的過程中,如果多個case條件后面的執(zhí)行語句是一樣的,則該執(zhí)行語句只需書寫一次即可,這是一種簡寫的方式。2.5循環(huán)結構語句2.5.1while循環(huán)語句while語句會反復地進行條件判斷,只要條件成立,{}內的執(zhí)行語句就會執(zhí)行,直到條件不成立,while循環(huán)結束。2.5循環(huán)結構語句2.5.1while循環(huán)語句while語句會反復地進行條件判斷,只要條件成立,{}內的執(zhí)行語句就會執(zhí)行,直到條件不成立,while循環(huán)結束。2.5循環(huán)結構語句2.5.2dowhile循環(huán)語句do…while循環(huán)語句和while循環(huán)語句功能類似。2.5循環(huán)結構語句2.5.2dowhile循環(huán)語句do…while循環(huán)語句和while循環(huán)語句功能類似。do…while循環(huán)和while循環(huán)能實現(xiàn)同樣的功能。然而在程序運行過程中,這兩種語句還是有差別的。如果循環(huán)條件在循環(huán)語句開始時就不成立,那么while循環(huán)的循環(huán)體一次都不會執(zhí)行,而do…while循環(huán)的循環(huán)體還是會執(zhí)行一次。2.5循環(huán)結構語句2.5.2dowhile循環(huán)語句do…while循環(huán)語句和while循環(huán)語句功能類似。例程2-13和例程2-12運行結果一致,這就說明do…while循環(huán)和while循環(huán)能實現(xiàn)同樣的功能。然而在程序運行過程中,這兩種語句還是有差別的。如果循環(huán)條件在循環(huán)語句開始時就不成立,那么while循環(huán)的循環(huán)體一次都不會執(zhí)行,而do…while循環(huán)的循環(huán)體還是會執(zhí)行一次。2.5循環(huán)結構語句2.5.3for循環(huán)語句for循環(huán)語句是最常用的循環(huán)語句,一般用在循環(huán)次數(shù)已知的情況下。2.5循環(huán)結構語句2.5.3for循環(huán)語句for關鍵字后面()中包括了三部分內容:初始化表達式、循環(huán)條件和操作表達式,它們之間用“;”分隔,{}中的執(zhí)行語句為循環(huán)體。接下來分別用①表示初始化表達式、②表示循環(huán)條件、③表示操作表達式、④表示循環(huán)體,通過序號來具體分析for循環(huán)的執(zhí)行流程。2.5循環(huán)結構語句2.5.3for循環(huán)語句2.5循環(huán)結構語句2.5.3for循環(huán)語句為了讓初學者能熟悉整個for循環(huán)的執(zhí)行過程,現(xiàn)將例程2-14運行期間每次循環(huán)中變量sum和i的值通過表2-11羅列出來。2.5循環(huán)結構語句2.5.4循環(huán)嵌套嵌套循環(huán)是指在一個循環(huán)語句的循環(huán)體中再定義一個循環(huán)語句的語法結構。while、do…while、for循環(huán)語句都可以進行嵌套,并且它們之間也可以互相嵌套,如最常見的在for循環(huán)中嵌套for循環(huán),格式如下。2.5循環(huán)結構語句2.5.4循環(huán)嵌套接下來通過一個案例來實現(xiàn)使用“*”打印直角三角形。2.5循環(huán)結構語句2.5.5跳轉語句(break、continue)跳轉語句用于實現(xiàn)循環(huán)執(zhí)行過程中程序流程的跳轉,在Java中的跳轉語句有break語句和continue語句。接下來分別進行詳細地講解。1、break語句在switch條件語句和循環(huán)語句中都可以使用break語句。當它出現(xiàn)在switch條件語句中時,作用是終止某個case并跳出switch結構。當它出現(xiàn)在循環(huán)語句中,作用是跳出循環(huán)語句,執(zhí)行后面的代碼。

2.5循環(huán)結構語句2.5.5跳轉語句(break、continue)1、break語句當break語句出現(xiàn)在嵌套循環(huán)中的內層循環(huán)時,它只能跳出內層循環(huán),如果想使用break語句跳出外層循環(huán)則需要對外層循環(huán)添加標記。2.5循環(huán)結構語句2.5.5跳轉語句(break、continue)1、break語句2.5循環(huán)結構語句2.5.5跳轉語句(break、continue)2、continue語句continue語句用在循環(huán)語句中,它的作用是終止本次循環(huán),執(zhí)行下一次循環(huán)。在嵌套循環(huán)語句中,continue語句后面也可以通過使用標記的方式結束本次外層循環(huán),用法與break語句相似,在此不再舉例說明。2.6方法2.6.1什么是方法假設有一個游戲程序,程序在運行過程中,要不斷地發(fā)射炮彈。發(fā)射炮彈的動作需要編寫100行的代碼,在每次實現(xiàn)發(fā)射炮彈的地方都需要重復地編寫這100行代碼,這樣程序會變得很臃腫,可讀性也非常差。為了解決代碼重復編寫的問題,可以將發(fā)射炮彈的代碼提取出來放在一個{}中,并為這段代碼起個名字,這樣在每次發(fā)射炮彈的地方通過這個名字來調用發(fā)射炮彈的代碼就可以了。上述過程中,所提取出來的代碼可以被看作是程序中定義的一個方法,程序在需要發(fā)射炮彈時調用該方法即可。2.6方法2.6.1什么是方法接下來通過一些案例來介紹方法在程序中起到的作用,先來看一下在不使用方法時如何實現(xiàn)打印三個長寬不同的矩形。2.6方法2.6.1什么是方法在例程2-19中,分別使用3個嵌套for循環(huán)完成了三個矩形的打印,仔細觀察會發(fā)現(xiàn),這3個嵌套for循環(huán)的代碼是重復的,都在做一樣的事情。此時,就可以將使用“*”打印矩形的功能定義為方法,在程序中調用三次即可。2.6方法2.6.1什么是方法在Java中,聲明一個方法的具體語法格式如下:修飾符:方法的修飾符比較多,有對訪問權限進行限定的,有靜態(tài)修飾符static,還有最終修飾符final等,這些修飾符在后面的學習過程中會逐步介紹返回值類型:用于限定方法返回值的數(shù)據(jù)類型參數(shù)類型:用于限定調用方法時傳入?yún)?shù)的數(shù)據(jù)類型參數(shù)名:是一個變量,用于接收調用方法時傳入的數(shù)據(jù)返回值:被return語句返回的值,該值會返回給調用者return關鍵字:用于結束方法以及返回方法指定類型的值需要特別注意的是,方法中的“參數(shù)類型參數(shù)名1,參數(shù)類型參數(shù)名2”被稱作參數(shù)列表,它用于描述方法在被調用時需要接收的參數(shù),如果方法不需要接收任何參數(shù),則參數(shù)列表為空,即()內不寫任何內容。方法的返回值必須為方法聲明的返回值類型,如果方法中沒有返回值,返回值類型要聲明為void,此時,方法中return語句可以省略。2.6方法2.6.1什么是方法有返回值的情況:2.6方法2.6.1什么是方法有返回值的情況:2.6方法2.6.2方法的重載假設要在程序中實現(xiàn)一個對數(shù)字求和的方法,由于參與求和數(shù)字的個數(shù)和類型都不確定,因此要針對不同的情況去設計不同的方法。接下來通過一個案例來實現(xiàn)對兩個整數(shù)相加、對三個整數(shù)相加以及對兩個小數(shù)相加的功能,具體實現(xiàn)如例程2-22所示。2.6方法2.6.2方法的重載從例程2-22中的代碼不難看出,程序需要針對每一種求和的情況都定義一個方法,如果每個方法的名稱都不相同,在調用時就很難分清哪種情況該調用哪個方法。為了解決這個問題,Java允許在一個程序中定義多個名稱相同的方法,但是參數(shù)的類型或個數(shù)必須不同,這就是方法的重載。例程2-23中定義了三個同名的add()方法,它們的參數(shù)個數(shù)或類型不同,從而形成了方法的重載。在main()方法中調用add()方法時,通過傳入不同的參數(shù)便可以確定調用哪個重載的方法,如add(1,2)調用的是兩個整數(shù)求和的方法。值得注意的是,方法的重載與返回值類型無關,它只有兩個條件,一是方法名相同,二是參數(shù)個數(shù)或參數(shù)類型不相同。2.6方法2.6.2方法的重載方法的遞歸是指在一個方法的內部調用自身的過程,遞歸必須要有結束條件,不然就會陷入無限遞歸的狀態(tài),永遠無法結束調用。2.6方法遞歸調用過程2.7數(shù)組數(shù)組是指一組數(shù)據(jù)的集合,數(shù)組中的每個數(shù)據(jù)被稱作元素。在數(shù)組中可以存放任意類型的元素,但同一個數(shù)組里存放的元素類型必須一致。2.7.1數(shù)組的定義在Java中,可以使用以下格式來定義一個數(shù)組。上述語句就相當于在內存中定義了100個int類型的變量,第一個變量的名稱為x[0],第二個變量的名稱為x[1],以此類推,第100個變量的名稱為x[99],這些變量的初始值都是0。2.7數(shù)組2.7.1數(shù)組的定義接下來,通過兩張內存圖來詳細地說明數(shù)組在創(chuàng)建過程中內存的分配情況。2.7數(shù)組2.7.1數(shù)組的定義如何定義數(shù)組以及訪問數(shù)組中的元素2.7數(shù)組2.7.1數(shù)組的定義如何為數(shù)組的元素賦值2.7數(shù)組2.7.1數(shù)組的定義在初始化數(shù)組時還有一種方式叫做靜態(tài)初始化,就是在定義數(shù)組的同時就為數(shù)組的每個元素賦值。數(shù)組的靜態(tài)初始化有兩種方式:但是為了簡便,建議采用第二種方式。2.7數(shù)組2.7.1數(shù)組的定義數(shù)組靜態(tài)初始化的效果:2.7數(shù)組2.7.1數(shù)組的定義數(shù)組靜態(tài)初始化的效

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論