JAVA語言基礎(chǔ)(新書)課件_第1頁
JAVA語言基礎(chǔ)(新書)課件_第2頁
JAVA語言基礎(chǔ)(新書)課件_第3頁
JAVA語言基礎(chǔ)(新書)課件_第4頁
JAVA語言基礎(chǔ)(新書)課件_第5頁
已閱讀5頁,還剩136頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第二章第二章 JavaJava編程基礎(chǔ)編程基礎(chǔ) Java語言基礎(chǔ)2【學(xué)習(xí)目標(biāo)】1 1掌握掌握 Java Java 程序中的程序中的注釋用法注釋用法。 2 2掌握掌握 Java Java 的的命名規(guī)則命名規(guī)則,了解,了解 Java Java 的的標(biāo)識符和系統(tǒng)保留字標(biāo)識符和系統(tǒng)保留字。 3 3掌握掌握 Java Java 的的基本數(shù)據(jù)類型基本數(shù)據(jù)類型,了解常量、變量和,了解常量、變量和 Java Java 擴(kuò)展的數(shù)據(jù)類擴(kuò)展的數(shù)據(jù)類型。型。4 4掌握掌握 Java Java 語言語言基本運(yùn)算符的使用基本運(yùn)算符的使用,掌握,掌握 Java Java 語言基本運(yùn)算符的語言基本運(yùn)算符的優(yōu)優(yōu)先級。先級。 5

2、 5掌握掌握 Java Java 程序的程序的基本控制結(jié)構(gòu)基本控制結(jié)構(gòu)。 6 6掌握并運(yùn)用掌握并運(yùn)用數(shù)組數(shù)組。 Java語言基礎(chǔ)32.1 2.1 數(shù)據(jù)類型、常量、變量數(shù)據(jù)類型、常量、變量 一、標(biāo)識符一、標(biāo)識符 標(biāo)識符:能被編譯器識別而提供的在程序中惟一的名字。在標(biāo)識符:能被編譯器識別而提供的在程序中惟一的名字。在JavaJava語言中用標(biāo)語言中用標(biāo)識符對變量、類、方法等進(jìn)行命名。識符對變量、類、方法等進(jìn)行命名。 對標(biāo)識符的定義需要遵守以下的規(guī)則:對標(biāo)識符的定義需要遵守以下的規(guī)則: 標(biāo)識符是由字母、標(biāo)識符是由字母、“_ _”、“$ $”和數(shù)字組成。和數(shù)字組成。標(biāo)識符標(biāo)識符以字母、以字母、“_ _

3、”、“$ $”開頭開頭。標(biāo)識符標(biāo)識符不能與關(guān)鍵字同名不能與關(guān)鍵字同名。標(biāo)識符標(biāo)識符區(qū)分大小寫區(qū)分大小寫。如:。如:sumsum和和SumSum是不同的標(biāo)識符。是不同的標(biāo)識符。例如:例如:nes_idnes_id,$fail$fail,_ese_ese為合法標(biāo)識符。為合法標(biāo)識符。nes-idnes-id,studstud* *,classclass為不合法為不合法標(biāo)識符。標(biāo)識符。 Java語言基礎(chǔ)4二、關(guān)鍵字二、關(guān)鍵字 關(guān)鍵字:關(guān)鍵字:Java語言本身提供的一種特殊的標(biāo)識符,又稱語言本身提供的一種特殊的標(biāo)識符,又稱Java保保留字。留字。Java語言的關(guān)鍵字有語言的關(guān)鍵字有40多個(gè)多個(gè).Java

4、語言基礎(chǔ)5 三、數(shù)據(jù)類型三、數(shù)據(jù)類型JavaJava數(shù)據(jù)類型數(shù)據(jù)類型: :基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型?;緮?shù)據(jù)類型和復(fù)合數(shù)據(jù)類型。n 基本數(shù)據(jù)類型基本數(shù)據(jù)類型: :數(shù)值型數(shù)值型、字符型字符型和和布爾型布爾型;n 復(fù)合類型復(fù)合類型: : 類類和和接口接口類型。類型。 1 1數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)整數(shù)整數(shù)類型、類型、浮點(diǎn)浮點(diǎn)類型。類型。Java語言基礎(chǔ)6(1) 整數(shù)類型 JavaJava把整型數(shù)細(xì)分為把整型數(shù)細(xì)分為字節(jié)型、短整型、整型、長整型字節(jié)型、短整型、整型、長整型。它們的類型。它們的類型標(biāo)識符、默認(rèn)值、取值范圍和所占字節(jié)如表標(biāo)識符、默認(rèn)值、取值范圍和所占字節(jié)如表2-22-2所示:所示: 注意:

5、Java中所有整數(shù)類型都是有符號的,沒有無符號的整數(shù)。 Java語言基礎(chǔ)7 (2)浮點(diǎn)型 Java提供了兩種浮點(diǎn)類型:單精度和雙精度。它們的類型標(biāo)識符、默認(rèn)值、取值范圍和所占字節(jié)如表2-3所示: 表2-3浮點(diǎn)數(shù)據(jù)分類 Java語言基礎(chǔ)8 (3)字符類型 (4)布爾型Java語言基礎(chǔ)9四、常量四、常量在在Java語言中的常量有:語言中的常量有:整型常量整型常量:十進(jìn)制、八進(jìn)制(以十進(jìn)制、八進(jìn)制(以0開頭)、十六進(jìn)制(開頭)、十六進(jìn)制(以以0 x或或0X開頭開頭)浮點(diǎn)常量浮點(diǎn)常量:小數(shù)形式和指數(shù)形式小數(shù)形式和指數(shù)形式字符常量:字符常量:單引號括起來的一個(gè)字符,區(qū)分大小寫單引號括起來的一個(gè)字符,區(qū)分

6、大小寫布爾常量:布爾常量:true 和和false字符串常量:字符串常量:雙雙引號括起來的一串字符,區(qū)分大小寫引號括起來的一串字符,區(qū)分大小寫程序中定義的常量(符號常量)程序中定義的常量(符號常量) Java語言基礎(chǔ)10轉(zhuǎn)義字符轉(zhuǎn)義字符JavaJava語言還允許使用一種以語言還允許使用一種以“ ”開頭的字符,我們稱其為轉(zhuǎn)義字符,開頭的字符,我們稱其為轉(zhuǎn)義字符,用來表示一些不可顯示的或有特殊意義的字符。用來表示一些不可顯示的或有特殊意義的字符。Java語言基礎(chǔ)11在在JavaJava程序中定義常量通過程序中定義常量通過finalfinal關(guān)鍵字實(shí)現(xiàn),關(guān)鍵字實(shí)現(xiàn),常量通常常量通常用大寫字母表示用大

7、寫字母表示。常量。常量聲明賦值后聲明賦值后,在,在程序中就不能再修改程序中就不能再修改,否則將會(huì)產(chǎn)生編譯錯(cuò)誤。否則將會(huì)產(chǎn)生編譯錯(cuò)誤。定義語句格式如下:定義語句格式如下: final final 類型標(biāo)識符類型標(biāo)識符 常量名常量名 常量值;常量值; 例如:例如: final int N 100;final int N 100;程序中定義的常量(符號常量)程序中定義的常量(符號常量)Java語言基礎(chǔ)12五、變量五、變量1.1.變量定義變量定義Java語言規(guī)定,程序中的變量語言規(guī)定,程序中的變量必須先定義、后使用必須先定義、后使用.定義定義變量語句的一般格式如下:變量語句的一般格式如下: 數(shù)據(jù)類型數(shù)

8、據(jù)類型 變量列表;變量列表;給變量給變量賦值賦值語句的一般格式為:語句的一般格式為: 變量名變量名= =表達(dá)式;表達(dá)式; Java語言基礎(chǔ)13例例2.1給變量賦值的演示給變量賦值的演示public class j202public static void main(String arg)int a,b; /定義變量定義變量a,b為整型變量為整型變量a=1; /給變量給變量a賦初值賦初值System.out.println(a=+a); a=a+1; System.out.println(a=+a);b=a+1; System.out.println(b=+b);a=b+2; System.ou

9、t.println(a=+a);Java語言基礎(chǔ)143 3變量初始化變量初始化例例2.2給變量賦值給變量賦值public class j203public static void main(String arg)byte a=0 x78; /定義十六進(jìn)制字節(jié)型變量定義十六進(jìn)制字節(jié)型變量int b=3; /定義變量定義變量b為整型變量為整型變量float c=1.23f; /定義變量定義變量c為單精度變量為單精度變量double d=3.23; /定義變量定義變量d為雙精度變量為雙精度變量boolean e=false; /定義變量定義變量e為布爾型變量為布爾型變量char f=A; /定義變量

10、定義變量f為字符型變量為字符型變量System.out.println(轉(zhuǎn)換成十進(jìn)制的轉(zhuǎn)換成十進(jìn)制的a=+a); /120System.out.println(b=+b); /3System.out.println(c=+c); /1.23System.out.println(d=+d); /3.23System.out.println(e=+e); /falseSystem.out.println(f=+f);/AJava語言基礎(chǔ)152.2 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式nJava語言運(yùn)算符是一種特殊字符,他指明用戶語言運(yùn)算符是一種特殊字符,他指明用戶對操作數(shù)進(jìn)行的某種操作。對操作數(shù)進(jìn)行的某種

11、操作。n表達(dá)式是由常量、變量、方法調(diào)用以及一個(gè)或表達(dá)式是由常量、變量、方法調(diào)用以及一個(gè)或多個(gè)運(yùn)算符按一定規(guī)則的組合,它用于計(jì)算或多個(gè)運(yùn)算符按一定規(guī)則的組合,它用于計(jì)算或?qū)ψ兞窟M(jìn)行賦值。對變量進(jìn)行賦值。 Java語言基礎(chǔ)162.2.12.2.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式 Java語言基礎(chǔ)17說明說明 (1)(1)“+ +”運(yùn)算符可以用來運(yùn)算符可以用來連接字符串連接字符串;例如:;例如:String salutation=Dr.;String salutation=Dr.;String name=Jack;String name=Jack;String title=salutat

12、ion+name;String title=salutation+name;則則titletitle值為值為“Dr. JackDr. Jack”。(2)(2)“/ /”運(yùn)算符。兩個(gè)整數(shù)相除的結(jié)果是整數(shù),如果有一個(gè)操運(yùn)算符。兩個(gè)整數(shù)相除的結(jié)果是整數(shù),如果有一個(gè)操作數(shù)為小數(shù)則結(jié)果為小數(shù)。例如作數(shù)為小數(shù)則結(jié)果為小數(shù)。例如5/2=25/2=2;5.0/2=2.55.0/2=2.5。(3 3)“% %”運(yùn)算符。運(yùn)算符。JavaJava中的取模運(yùn)算符與中的取模運(yùn)算符與C C和和C+C+不同,它的不同,它的操作數(shù)可以是浮點(diǎn)數(shù)。例如操作數(shù)可以是浮點(diǎn)數(shù)。例如-3.5%3=-0.5-3.5%3=-0.5,3.5%

13、-3=0.53.5%-3=0.5。Java語言基礎(chǔ)18(4 4)+(-)運(yùn)算符的)運(yùn)算符的操作數(shù)必須是變量操作數(shù)必須是變量,不能是常量和,不能是常量和表達(dá)式。它們可以放在變量前,也可以放在變量后,功能都表達(dá)式。它們可以放在變量前,也可以放在變量后,功能都是對變量增(減)是對變量增(減)1 1。但從表達(dá)式的角度看,表達(dá)式的值是。但從表達(dá)式的角度看,表達(dá)式的值是不同的不同的. .例如:例如:k=a+k=a+;等價(jià)于;等價(jià)于k=a; a=a+1; k=a; a=a+1; 如如a=5a=5,則,則k=5k=5,a=6a=6;k=+a; k=+a; 等價(jià)于等價(jià)于a=a+1; k=a; a=a+1; k=

14、a; 如如a=5a=5,則,則k=6k=6,a=6a=6;Java語言基礎(chǔ)19例例24算術(shù)運(yùn)算算術(shù)運(yùn)算public class j204public static void main(String arg)int a=3,b=5,c=5;System.out.println(初值初值a=3,b=5,c=5);System.out.println(b/a=+b/a); System.out.println(c%a=+c%a); System.out.println(-a=+(-a); System.out.println(b+=+(b+)+,+b=+b);System.out.println(+

15、c=+(+c)+,+c=+c); Java語言基礎(chǔ)202.2.2 關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符與關(guān)系表達(dá)式1 1關(guān)系運(yùn)算符組成關(guān)系運(yùn)算符組成JavaJava語言提供了語言提供了6 6種關(guān)系運(yùn)算符種關(guān)系運(yùn)算符 、=、 、=7107的值為的值為truetrue,1010!=10=10的值為的值為false false Java語言基礎(chǔ)212.2.32.2.3邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算與關(guān)系運(yùn)算的關(guān)系十分密切,關(guān)系運(yùn)算的運(yùn)算結(jié)果邏輯運(yùn)算與關(guān)系運(yùn)算的關(guān)系十分密切,關(guān)系運(yùn)算的運(yùn)算結(jié)果是布爾型的運(yùn)算,而邏輯運(yùn)算的操作數(shù)和運(yùn)算結(jié)果都是布爾是布爾型的運(yùn)算,而邏輯運(yùn)算的操作數(shù)和運(yùn)算

16、結(jié)果都是布爾型的運(yùn)算。型的運(yùn)算。邏輯運(yùn)算符邏輯運(yùn)算符: :n! !(非)(非)n&(簡潔與):邏輯與(簡潔與):邏輯與n|(簡潔或):邏輯或(簡潔或):邏輯或n& &(非簡潔與)(非簡潔與):按位與按位與n| |(非簡潔或):按位或(非簡潔或):按位或n (異或)(異或) 其中!是單目運(yùn)算符。其中!是單目運(yùn)算符。 Java語言基礎(chǔ)22例例2.5邏輯運(yùn)算邏輯運(yùn)算public class j205public static void main(String arg)int x=1,y=2;int num1=5,num2=5,num3=5,num4=5;boolean r1,

17、r2,r3,r4;r1=xy & num1+=5; /兩邊表達(dá)式都運(yùn)算兩邊表達(dá)式都運(yùn)算r2=xy & num2+=5; /只運(yùn)算左邊表達(dá)式只運(yùn)算左邊表達(dá)式r3=xy | num3+=5; /兩邊表達(dá)式都運(yùn)算兩邊表達(dá)式都運(yùn)算r4=xb : + (a b); System.out.println(a=b : + (a = b); System.out.println(t&f : + (t & f); System.out.println(t|f : + (t | f); System.out.println(!f : + (!f); System.out.print

18、ln(tf : + (t f); System.out.println(t&f : + (t & f); System.out.println(t|f : + (t | f); Java語言基礎(chǔ)242.2.4 賦值運(yùn)算符賦值運(yùn)算符n賦值運(yùn)算符的作用是將運(yùn)算符賦值運(yùn)算符的作用是將運(yùn)算符“= =”右側(cè)表達(dá)式的值右側(cè)表達(dá)式的值賦給左側(cè)的變量。賦給左側(cè)的變量。n另外另外“= =”和其它運(yùn)算符組合產(chǎn)生了擴(kuò)展賦值運(yùn)算符。和其它運(yùn)算符組合產(chǎn)生了擴(kuò)展賦值運(yùn)算符。 a+=2 a+=2 等價(jià)于等價(jià)于a=a+2a=a+2。 Java語言基礎(chǔ)252.2.5 條件運(yùn)算符條件運(yùn)算符 條件運(yùn)算符條件運(yùn)算符“

19、?”“?”是三目運(yùn)算符,其格式為:是三目運(yùn)算符,其格式為:表達(dá)式?語句表達(dá)式?語句1 1:語句:語句2 2; 其中表達(dá)式的值是布爾類型,當(dāng)表達(dá)式的值為其中表達(dá)式的值是布爾類型,當(dāng)表達(dá)式的值為truetrue時(shí)執(zhí)行語句時(shí)執(zhí)行語句1 1,否則執(zhí)行語句,否則執(zhí)行語句2 2。要求語句。要求語句1 1和語和語句句2 2 返回的數(shù)據(jù)類型必須相同,并且不能無返回值。返回的數(shù)據(jù)類型必須相同,并且不能無返回值。Java語言基礎(chǔ)26例例2.6 比較三個(gè)數(shù)的大小,求出其中的最大值和最小值比較三個(gè)數(shù)的大小,求出其中的最大值和最小值public class j206public static void main(Str

20、ing arg)int a=12,b=-23,c=34;int max,min,t; /求三個(gè)數(shù)中的最大值求三個(gè)數(shù)中的最大值t=ab?a:b; max=tc?t:c;/求三個(gè)數(shù)中最小值求三個(gè)數(shù)中最小值t=ab?a:b;min=tc?t:c;/顯示結(jié)果顯示結(jié)果System.out.println(max=+max);System.out.println(min=+min);Java語言基礎(chǔ)272.2.6 運(yùn)算符優(yōu)先級運(yùn)算符優(yōu)先級28n位運(yùn)算符位運(yùn)算符n按位取反按位取反 “op2”n按位與按位與 & “op1 & op2” n按位或按位或 | “op1 | op2”n按位異或按位異

21、或 “op1 op2”通常通常: 操作數(shù)為整數(shù)操作數(shù)為整數(shù)運(yùn)算符 (operator)29n采用補(bǔ)碼表示二進(jìn)制數(shù)采用補(bǔ)碼表示二進(jìn)制數(shù)n最高位是符號位最高位是符號位n正數(shù)的符號位是正數(shù)的符號位是0,例,十進(jìn)制例,十進(jìn)制42的補(bǔ)碼為的補(bǔ)碼為00101010n負(fù)數(shù)的符號位是負(fù)數(shù)的符號位是1該負(fù)數(shù)絕對值的補(bǔ)碼按位取反,然后加該負(fù)數(shù)絕對值的補(bǔ)碼按位取反,然后加1,為該負(fù),為該負(fù)數(shù)的補(bǔ)碼數(shù)的補(bǔ)碼例,十進(jìn)制例,十進(jìn)制-42的補(bǔ)碼的補(bǔ)碼負(fù)數(shù)的絕對值負(fù)數(shù)的絕對值42 絕對值的補(bǔ)碼絕對值的補(bǔ)碼00101010 按位取反按位取反11010101 加加1得得11010110補(bǔ)碼30對操作數(shù)的每一個(gè)二進(jìn)制位進(jìn)行“取反”

22、操作nbyte a = 42;nbyte aa = a;nSystem.out.println(“aa=” + aa);42 00101010 /a a-43 11010101 /原碼為10101011=-43按位取反按位取反 “op2”31將操作數(shù)的對應(yīng)位逐位進(jìn)行位邏輯與運(yùn)算將操作數(shù)的對應(yīng)位逐位進(jìn)行位邏輯與運(yùn)算1 & 1 1,其余為,其余為0用途用途n取某一整數(shù)中指定的幾個(gè)二進(jìn)制位取某一整數(shù)中指定的幾個(gè)二進(jìn)制位42 & 15 00101010 & 00001111 00001010 取后四位取后四位按位與 & “op1 & op2”32n用途用途n將某

23、一整數(shù)的某一或幾位清將某一整數(shù)的某一或幾位清043 & 1 00101011 & 11111110 00101010按位與 & “op1 & op2”33將操作數(shù)的對應(yīng)位逐位進(jìn)行位邏輯或運(yùn)算將操作數(shù)的對應(yīng)位逐位進(jìn)行位邏輯或運(yùn)算有有1 1,其余為,其余為042 | 15 00101010 | 00001111 00101111用途用途: 將一個(gè)整數(shù)的某一位或幾位置將一個(gè)整數(shù)的某一位或幾位置1按位或 | “op1 | op2”34將操作數(shù)的對應(yīng)位逐位進(jìn)行位異或運(yùn)算將操作數(shù)的對應(yīng)位逐位進(jìn)行位異或運(yùn)算對應(yīng)位不同對應(yīng)位不同1,其余為,其余為042 15 00101010

24、00001111 00100101用途用途: 將一個(gè)整數(shù)的某一位或幾位取反將一個(gè)整數(shù)的某一位或幾位取反按位異或 “op1 op2”35n移位運(yùn)算符移位運(yùn)算符(Shift Operators)n左移左移 “op1 “op1 op2”1.無符號右移無符號右移 “op1 op2”運(yùn)算符 (operator)36n將操作數(shù)將操作數(shù)op1的二進(jìn)制位向左移的二進(jìn)制位向左移op2(正整數(shù)正整數(shù))位位n低位補(bǔ)零低位補(bǔ)零 例:例: int a = 42; int aa = a 2; System.out.println(“aa=” + aa);分析:分析:42= 00101010B 42 2 10101000

25、相當(dāng)于相當(dāng)于 42*22 = 168運(yùn)算速度比乘法快運(yùn)算速度比乘法快注意注意: 溢出溢出左移 “op1 2; System.out.println(“aa=” + aa);分析:分析: -42 = (10101010)原原=(11010110)補(bǔ)補(bǔ) -42 2 11110101 /(10001011)原原=-11 相當(dāng)于相當(dāng)于 -42/22 = -10.5 運(yùn)算速度比除法快運(yùn)算速度比除法快右移 “op1 op2”38n將操作數(shù)將操作數(shù)op1的二進(jìn)制位向右移的二進(jìn)制位向右移op2(正整數(shù)正整數(shù))位位n高位補(bǔ)零高位補(bǔ)零,零擴(kuò)展,零擴(kuò)展(zero-extension)例:例: int a = -42

26、; int aa = a 2; System.out.println(“aa=” + aa);分析:分析: -42 = (10101010)原原=(11010110)補(bǔ)補(bǔ) -422 00110101 /32+16+4+1=53實(shí)現(xiàn)數(shù)的拼接實(shí)現(xiàn)數(shù)的拼接無符號右移 “op1 op2”總結(jié)n算術(shù)右移算術(shù)右移,符號位復(fù)制符號位復(fù)制,為正數(shù)時(shí)左邊補(bǔ)為正數(shù)時(shí)左邊補(bǔ)0,為負(fù)數(shù)時(shí)左邊為負(fù)數(shù)時(shí)左邊補(bǔ)補(bǔ)1. 右邊舍棄。右邊舍棄。n邏輯右移邏輯右移,這個(gè)才是和這個(gè)才是和和和是一樣的;對于負(fù)數(shù)是一樣的;對于負(fù)數(shù),邏邏輯右移之后就變成正數(shù)了輯右移之后就變成正數(shù)了. 練習(xí)練習(xí) 位運(yùn)算符位運(yùn)算符public class B

27、itOpDemo public static void main(String args) int a = 0 xB5; /a=10110101B int b = 0 xA3;/b=10100011B System.out.println(a = + Integer.toBinaryString (a); System.out.println(b = + Integer.toBinaryString (b); System.out.println(a = + Integer.toBinaryString (a); System.out.println(a&b = + Integer.t

28、oBinaryString (a & b); System.out.println(a|b = + Integer.toBinaryString (a | b); System.out.println(ab = + Integer.toBinaryString (a b); System.out.println(a3 = + Integer.toBinaryString (a 3 = + Integer.toBinaryString (a 3); System.out.println(a3 = + Integer.toBinaryString (a 3); 運(yùn)行結(jié)果Java語言基礎(chǔ)42

29、2.3 Java2.3 Java程序的流程控制程序的流程控制n2.3.1 順序結(jié)構(gòu)順序結(jié)構(gòu)n2.3.2 選擇結(jié)構(gòu)選擇結(jié)構(gòu)n2.3.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)Reader常用子類常用子類nBufferedReadern構(gòu)造一個(gè)字符流的緩存構(gòu)造一個(gè)字符流的緩存,里面,里面存放存放的是從控制臺輸入的字節(jié)轉(zhuǎn)換成的是從控制臺輸入的字節(jié)轉(zhuǎn)換成的的字符,字符,從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取。從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取。n可以指定緩沖區(qū)的大小可以指定緩沖區(qū)的大小nInputStreamReadern字節(jié)流通向字符流的橋梁字節(jié)流通向字符流的橋梁:它使用指定的:它使用指定的 charsetcharset 讀取字

30、節(jié)并讀取字節(jié)并將其解碼為字符。將其解碼為字符。 n每次每次調(diào)用調(diào)用 InputStreamReaderInputStreamReader的的read() read() 方法都會(huì)導(dǎo)致從底層輸入方法都會(huì)導(dǎo)致從底層輸入流讀取一個(gè)或多個(gè)字節(jié)。流讀取一個(gè)或多個(gè)字節(jié)。 buf=new BufferedReader(new InputStreamReader(System.in);Java語言基礎(chǔ)44例例2.7輸入一個(gè)數(shù),求其平方根輸入一個(gè)數(shù),求其平方根import java.io.*;public class j207 public static void main(String arg) throws

31、IOException int x; double y; String str; /聲明字符串類聲明字符串類 BufferedReader buf; /聲明緩沖數(shù)據(jù)流類聲明緩沖數(shù)據(jù)流類 System.out.print(請輸入一個(gè)數(shù)請輸入一個(gè)數(shù):); buf=new BufferedReader(new InputStreamReader(System.in); str=buf.readLine(); x=Integer.parseInt(str);/返回由字符串轉(zhuǎn)換得到的整數(shù)返回由字符串轉(zhuǎn)換得到的整數(shù) y=Math.sqrt(x); /求平方根求平方根 System.out.println(

32、x+的平方根為:的平方根為:+y); /顯示計(jì)算結(jié)果顯示計(jì)算結(jié)果 Java語言基礎(chǔ)45例例2.8輸入一個(gè)數(shù),求其輸入一個(gè)數(shù),求其平方根平方根import java.io.*;public class j208 public static void main(String arg) throws IOException int x; double y; String str; BufferedReader buf; System.out.print(請輸入請輸入一個(gè)數(shù)一個(gè)數(shù):); buf=new BufferedReader(new InputStreamReader(System.in); s

33、tr=buf.readLine(); x=Integer.parseInt(str); if (x=0) y=Math.sqrt(x); System.out.println(x+的的平方根為:平方根為:+y); Java語言基礎(chǔ)46例例29輸入一個(gè)數(shù),求其平方根輸入一個(gè)數(shù),求其平方根import java.io.*;public class j209public static void main(String arg) throws IOExceptionint x;double y;String str; BufferedReader buf; System.out.print(請輸入一個(gè)

34、請輸入一個(gè)數(shù)數(shù):);buf=new BufferedReader(new InputStreamReader(System.in);str=buf.readLine();x=Integer.parseInt(str);if (x=0) y=Math.sqrt(x); System.out.println(x+的平方的平方根為:根為:+y); else System.out.println(輸入錯(cuò)誤!輸入錯(cuò)誤!);Java語言基礎(chǔ)47例例2.10 2.10 編寫程序,輸入一個(gè)成績,輸出成績的等級。等編寫程序,輸入一個(gè)成績,輸出成績的等級。等級劃分標(biāo)準(zhǔn):級劃分標(biāo)準(zhǔn):8585分以上為優(yōu),分以上為優(yōu),

35、75758484為良,為良,60607474為中,為中,6060分以下為不及格分以下為不及格import java.io.*;public class j210public static void main(String arg) throws IOExceptionint x;String str; BufferedReader buf; System.out.print(請輸入學(xué)生請輸入學(xué)生成績(成績(0-100)之間:)之間:);buf=new BufferedReader(new InputStreamReader(System.in);str=buf.readLine(); x=In

36、teger.parseInt(str);if(x=85)System.out.println(成績優(yōu)秀!成績優(yōu)秀!);else if(x=75)System.out.println(成績良好!成績良好!);else if(x60)System.out.println(成績及格!成績及格!);else System.out.println(成績不及格!成績不及格!);Java語言基礎(chǔ)48例例2.112.11輸入成績的英文等級:輸入成績的英文等級:A A、B B、C C、D D,輸出對應(yīng)的,輸出對應(yīng)的中文等級:優(yōu)秀、良好、及格、不及格中文等級:優(yōu)秀、良好、及格、不及格 import java.io

37、.*;public class j211public static void main(String arg) throws IOException char ch;System.out.print(請輸入英文請輸入英文等級(等級(A,B,C,D):);/接受從鍵盤上輸入的一個(gè)數(shù)據(jù)接受從鍵盤上輸入的一個(gè)數(shù)據(jù)把它轉(zhuǎn)換成一個(gè)字符把它轉(zhuǎn)換成一個(gè)字符ch=(char)System.in.read(); switch(ch) case A:case a: System.out.println(成成績優(yōu)秀!績優(yōu)秀!); break;case B:case b: System.out.println(成成績

38、良好!績良好!);break;case C:case c: System.out.println(成成績及格!績及格!);break;case D:case d: System.out.println(成成績不及格!績不及格!);break;default:System.out.println(輸輸入錯(cuò)誤!入錯(cuò)誤!);Java語言基礎(chǔ)49例例2.12 用戶從鍵盤輸入字符,直到輸入用戶從鍵盤輸入字符,直到輸入&程序結(jié)束。要求:輸入程序結(jié)束。要求:輸入字符后顯示輸入字符的字符后顯示輸入字符的ASCII值并最終統(tǒng)計(jì)出輸入字符的個(gè)數(shù)值并最終統(tǒng)計(jì)出輸入字符的個(gè)數(shù) import java.io.*

39、;public class j212public static void main(String arg) throws IOExceptionchar ch;int count=0; System.out.println(請輸入一個(gè)字符,以請輸入一個(gè)字符,以&結(jié)束輸入:結(jié)束輸入:);ch=(char)System.in.read(); while(ch!=&) System.out.println(字符字符+ch+的的ASCII值為值為:+(int)ch); System.in.skip(2); count=count+1; ch=(char)System.in.read()

40、; System.out.println(輸入的字符共輸入的字符共+count); nSystem.in.skip(2);當(dāng)用戶鍵入字母,按當(dāng)用戶鍵入字母,按Enter 鍵后,雖然屏幕只顯示了一個(gè)字母,但是在系統(tǒng)內(nèi)存鍵后,雖然屏幕只顯示了一個(gè)字母,但是在系統(tǒng)內(nèi)存中實(shí)際保存了中實(shí)際保存了3個(gè)個(gè)ASCII碼。碼。第一個(gè)第一個(gè)ASCII碼是用戶鍵入的字母的碼是用戶鍵入的字母的ASCII碼,碼,第二個(gè)是回車的第二個(gè)是回車的ASCII碼碼 13,第三個(gè)是換行的第三個(gè)是換行的ASCII碼碼 10。在這種情況下,在這種情況下,System.in.read(); 語句會(huì)在第二、三輪循環(huán)時(shí)分別讀取內(nèi)存中語句會(huì)在

41、第二、三輪循環(huán)時(shí)分別讀取內(nèi)存中的的ASCII 碼碼 13和和 10,而不會(huì)要求用戶鍵入新的字母。只有在第四輪循環(huán)時(shí),因,而不會(huì)要求用戶鍵入新的字母。只有在第四輪循環(huán)時(shí),因?yàn)閮?nèi)存中的內(nèi)容已經(jīng)全部讀取完,才會(huì)要求用戶鍵入新的字母。為內(nèi)存中的內(nèi)容已經(jīng)全部讀取完,才會(huì)要求用戶鍵入新的字母。 Java語言基礎(chǔ)52例例2.132.13對例對例2.122.12進(jìn)行改編,用進(jìn)行改編,用do-whiledo-while語句實(shí)現(xiàn)語句實(shí)現(xiàn)import java.io.*;public class j213public static void main(String arg) throws IOExceptionch

42、ar ch;int count=0; System.out.println(請輸入字符,以請輸入字符,以#結(jié)束輸入:結(jié)束輸入:);doch=(char)System.in.read(); System.out.println(字符字符+ch+的的ASCII值為值為:+(int)ch); count=count+1; while(ch!=#) ;System.out.println(輸入的字符共:輸入的字符共:+count); Java語言基礎(chǔ)54/*方法方法3*/i=1;sum=0; /賦初值賦初值for (;) sum=sum+i; /求累加和求累加和if (i=100) break; /退

43、出循環(huán)條件退出循環(huán)條件i+; /加數(shù)自加加數(shù)自加System.out.println(1+2+.+100=+sum); Java語言基礎(chǔ)55 例例2.14計(jì)算計(jì)算1+2+3+100的值的值 public class j214public static void main(String arg)int i,sum; /定義變量定義變量/*方法方法1*/sum=0; /給存放累加和的變量賦初值給存放累加和的變量賦初值0for (i=1;i=100;i+) /求累加和的循環(huán)開始求累加和的循環(huán)開始sum=sum+i; /求累加和求累加和System.out.println(1+2+.+100=+sum

44、);/*方法方法2*/for (sum=0,i=1;i=100;sum=sum+i,i+); /循環(huán)語句循環(huán)語句System.out.println(1+2+.+100=+sum);Java語言基礎(chǔ)56 例例2.152.15求求1-10001-1000之間的所有完全數(shù)之間的所有完全數(shù) public class j215public static void main(String arg)int i,j,sum; /定義變量定義變量for(i=1;i1000;i+) sum=0;for(j=1;ji;j+) if(i%j=0) sum=sum+j; /因子累加因子累加if(sum=i) /判定是

45、否為完全數(shù)判定是否為完全數(shù)System.out.print(i+t);System.out.println();57跳轉(zhuǎn)語句nbreak語句nbreak語句用以中斷當(dāng)前執(zhí)行的循環(huán)語句(for、do-while、while)或switch語句n兩種形式n不帶標(biāo)號的break語句n表達(dá)形式: break;n從本層循環(huán)中跳出n帶標(biāo)號的break語句n表達(dá)形式:n從整個(gè)程序塊中跳出標(biāo)號: 程序塊 (break 標(biāo)號;)若只有一層循環(huán),帶標(biāo)號和不帶標(biāo)號作用相同若存在循環(huán)嵌套,兩者作用不同Java語言基礎(chǔ)58例例2.16計(jì)算計(jì)算 3 的的 60 次方。次方。 public class Example2_1

46、6 public static void main(String args) int i,n=60; long result=1; for(i=1;i=Integer.MAX_VALUE) break; if (i= =n+1) System.out.println(3 的的+n +次方為:次方為:+ result); ElseSystem.out.println(超出了整數(shù)范圍超出了整數(shù)范圍); 超出了整數(shù)范圍超出了整數(shù)范圍59n帶標(biāo)號的break語句class Test public static void main(String args) int j, k; Rep: for (j =

47、 8; j 1; j-) for (k=1; k=9; k+) if (k =5) break; if (j=6) break Rep;System.out.print(j*k+“ ”); System.out.println(“”); 跳轉(zhuǎn)語句8 16 24 32 7 14 21 28 若只有一層循環(huán),帶標(biāo)號和不帶標(biāo)號作用相同若存在循環(huán)嵌套,兩者作用不同60跳轉(zhuǎn)語句ncontinue語句ncontinue語句用以結(jié)束循環(huán)語句(for、do-while、while)的本次循環(huán)n兩種形式n不帶標(biāo)號的continue語句n表達(dá)形式: continue;n結(jié)束本次循環(huán),即跳過continue語句后的

48、語句,返回至本層循環(huán)體的條件測試部分n帶標(biāo)號的continue語句n表達(dá)形式:n跳至標(biāo)號所指語句塊的條件測試部分繼續(xù)執(zhí)行n注意與break語句的比較標(biāo)號: 程序塊 (continue 標(biāo)號;)若只有一層循環(huán),帶標(biāo)號和不帶標(biāo)號作用相同若存在循環(huán)嵌套,兩者作用不同Java語言基礎(chǔ)61例例2.17求自然數(shù)求自然數(shù) 1 至至 99 中所有奇數(shù)的和。中所有奇數(shù)的和。 public class Example217 public static void main(String args) int sum=0,i; for (i=1;i=99;+i) if (i%2=0) continue; sum +=i

49、; System.out.println(sum); 2500Java語言基礎(chǔ)62例例2.18 2.18 輸出輸出 200 200 以內(nèi)的所有素?cái)?shù)的程序就使用了帶標(biāo)以內(nèi)的所有素?cái)?shù)的程序就使用了帶標(biāo)號的號的 continue continue 語句語句: import java.io.*;public class Sushu public static void main ( String args ) A1: for( int i = 2; i = 200; i+ ) for( int j = 2; j i; j+) if ( i % j = 0) continue A1; System.ou

50、t.print( i + ); 課堂練習(xí)課堂練習(xí)1:1:寫出程序的運(yùn)行結(jié)果寫出程序的運(yùn)行結(jié)果import java.io.IOException;public class Test public static void main(String args) throws IOException System.out.println(please enter number); int b = 0; while (true) b = System.in.read(); if (b = n | b = r) break; else int num = b - 0; System.out.println

51、(num); n輸入:輸入:123 n輸出:輸出:Java語言基礎(chǔ)64課堂練習(xí)課堂練習(xí)2:求求2100的素?cái)?shù),每行打印的素?cái)?shù),每行打印5個(gè)數(shù)字個(gè)數(shù)字import java.io.*;public class prime public static void main(String args) First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; System.out.print(i+t);k+;if(k%5=0) System.out.println(

52、); /for /main /classJava語言基礎(chǔ)652.4 數(shù)組數(shù)組2.4.1什么是數(shù)組 數(shù)組是一組類型相同、名字相同的數(shù)據(jù)的總稱,數(shù)組中的每個(gè)數(shù)據(jù)稱為一個(gè)數(shù)組元素。 Java語言基礎(chǔ)662.4.2 一維數(shù)組一維數(shù)組在在JavaJava語言中,使用數(shù)組一般步驟:語言中,使用數(shù)組一般步驟: 數(shù)組定義、分配內(nèi)存、賦值。數(shù)組定義、分配內(nèi)存、賦值。1 1定義數(shù)組定義數(shù)組形式有兩種:形式有兩種: 數(shù)組元素類型數(shù)組元素類型 數(shù)組名數(shù)組名 ; 數(shù)組元素類型數(shù)組元素類型 數(shù)組名;數(shù)組名;例如:例如:int student; int student; 注意注意:n類型是數(shù)組中元素的數(shù)據(jù)類型類型是數(shù)組中元

53、素的數(shù)據(jù)類型(基本和構(gòu)造類型基本和構(gòu)造類型)n數(shù)組名是一個(gè)標(biāo)識符數(shù)組名是一個(gè)標(biāo)識符n數(shù)組聲明后不能被訪問,因未為數(shù)組元素分配內(nèi)存空數(shù)組聲明后不能被訪問,因未為數(shù)組元素分配內(nèi)存空間間variable d might not have been initializedSystem.out.println(d0); 1 errordouble d;System.out.println(d0);Java語言基礎(chǔ)672 2用用newnew初始化數(shù)組初始化數(shù)組 用關(guān)鍵字new初始化數(shù)組:指定數(shù)組的長度并分配相應(yīng)的內(nèi)存空間。例如: int a; a = new int50; 定義數(shù)組和動(dòng)態(tài)初始化數(shù)組也可以合

54、并為一條語句,例如: int a = new int50; String name = new String30; 在動(dòng)態(tài)初始化數(shù)組后,數(shù)組的默認(rèn)值由其元素的類型決定。在動(dòng)態(tài)初始化數(shù)組后,數(shù)組的默認(rèn)值由其元素的類型決定。例如:整型數(shù)據(jù)的默認(rèn)值為例如:整型數(shù)據(jù)的默認(rèn)值為0 0,實(shí)型數(shù)據(jù)的默認(rèn)值為,實(shí)型數(shù)據(jù)的默認(rèn)值為0.00.0, 布爾型數(shù)據(jù)的默認(rèn)值為布爾型數(shù)據(jù)的默認(rèn)值為false false Java語言基礎(chǔ)683 3賦初值初始化數(shù)組賦初值初始化數(shù)組賦初值初始化數(shù)組是指不使用系統(tǒng)的數(shù)組默認(rèn)值,自行給數(shù)組賦初值。賦初值初始化數(shù)組是指不使用系統(tǒng)的數(shù)組默認(rèn)值,自行給數(shù)組賦初值。具體實(shí)施方法:具體實(shí)施方

55、法:(1)按照順序依次給每個(gè)元素賦值。)按照順序依次給每個(gè)元素賦值。例如給數(shù)組例如給數(shù)組a賦值:賦值:a0 = 81;a1 = 90;a49 = 100;(2)在定義數(shù)組的同時(shí)直接給數(shù)組賦初值。)在定義數(shù)組的同時(shí)直接給數(shù)組賦初值。int b = 81,90,17,55,32, 98,37,25,100 ;String nums = one,two,three,four,five,six,seven,eight ; 初值數(shù)據(jù)的個(gè)數(shù)就是數(shù)組的長度,數(shù)據(jù)與數(shù)據(jù)之間用逗號分隔,整初值數(shù)據(jù)的個(gè)數(shù)就是數(shù)組的長度,數(shù)據(jù)與數(shù)據(jù)之間用逗號分隔,整 個(gè)初值再用大括號括起來。個(gè)初值再用大括號括起來。Java語言基礎(chǔ)

56、694數(shù)組元素的引用數(shù)組名數(shù)組名 下標(biāo)下標(biāo) 下標(biāo)值由0開始到數(shù)組長度減1為止。 a50:a0表示數(shù)組中的第一個(gè)元素;a49表示數(shù)組中的最后一個(gè)元素。 Java語言基礎(chǔ)705數(shù)組的復(fù)制 每個(gè)數(shù)組都是每個(gè)數(shù)組都是ArrayArray類中的一個(gè)對象,在復(fù)制數(shù)組時(shí)有兩類中的一個(gè)對象,在復(fù)制數(shù)組時(shí)有兩種具體情況。種具體情況。 (1)兩個(gè)數(shù)組指向同一組元素空間。 例如例如: int num_1 = 1, 2, 3, 4, 5, 6; int num_2; num_2 = num_1; Java語言基礎(chǔ)71(2 2)兩個(gè)數(shù)組指向內(nèi)容相同的兩個(gè)元素空間)兩個(gè)數(shù)組指向內(nèi)容相同的兩個(gè)元素空間。 如果要真正復(fù)制一個(gè)

57、數(shù)組,使我們在修改復(fù)制數(shù)組時(shí)不影響源數(shù)組的話,就需要定義一個(gè)和源數(shù)組長度相同的數(shù)組,然后再把源數(shù)組中的元素一一復(fù)制給新的數(shù)組。n求任何數(shù)組的長度都可以使用求任何數(shù)組的長度都可以使用length方法:方法: 數(shù)組名數(shù)組名.length 如:如:num_1.length、 a.length等等 72一維數(shù)組n數(shù)組整體賦值class Test public static void main(String args) int a = 2, 4, 6, 8;int b; int c = 1, 3, 5, 7;b = a; c = a;for (int j = 0; j a.length; j+)Syst

58、em.out.print(aj + “ “);System.out.println();for (int j = 0; j b.length; j+)System.out.print(bj + “ “) ;System.out.println();for (int j = 0; j java Test2 4 6 82 4 6 82 4 6 8C:int a = 2, 4, 6, 8, 0; int b; int c = 1, 3, 5, 7;int a = 2, 4, 6, 8; int b; int c = 1, 3, 5, 7, 9;Java語言基礎(chǔ)73例例2.19 一維數(shù)組的構(gòu)建與輸出一

59、維數(shù)組的構(gòu)建與輸出,并求數(shù)組平均值并求數(shù)組平均值class Array1creatpublic static void main(String args)int num1=1,2,3,4,5,6;int num2;int j;float ave=0f;System.out.println(數(shù)組數(shù)組num1各元素的值為:各元素的值為:);for(j=0; j num1.length ; j+)System.out.print(num1 j+t);System.out.println();System.out.println(數(shù)組數(shù)組num1的長度為:的長度為:+ num1.length);Jav

60、a語言基礎(chǔ)74num2=num1;System.out.println(數(shù)組數(shù)組num2各元素的值為:各元素的值為:);for(j=0; j num2.length ; j+)System.out.print(num2 j+t);ave = ave + num2 j;System.out.println();ave = ave / num2.length;System.out.println(數(shù)組數(shù)組num2的平均值為:的平均值為:+ ave); Java語言基礎(chǔ)752.4.3 2.4.3 二維數(shù)組二維數(shù)組 1二維數(shù)組定義與定義一維數(shù)組類似,定義二維數(shù)組也有兩種形式: (1)數(shù)組元素類型)數(shù)組元素類型 數(shù)組名數(shù)組名;例如:intnum;charcc;(2)數(shù)組元素類型)數(shù)組元素類型 數(shù)組名數(shù)組名 ;例如:Stringss;Doublevalue; 二維數(shù)組可以看作一個(gè)按

溫馨提示

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

最新文檔

評論

0/150

提交評論