單元2 Java語言基礎_第1頁
單元2 Java語言基礎_第2頁
單元2 Java語言基礎_第3頁
單元2 Java語言基礎_第4頁
單元2 Java語言基礎_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單元2

Java語言基礎

Java程序基礎數(shù)據類型常量和變量運算符表達式控制臺輸入輸出2.1知識儲備–

Java程序基礎

Java程序基本結構注釋標識符關鍵字單元2Java語言基礎Java開發(fā)人員需要熟悉Java語言基礎。萬丈高樓平地起,一磚一瓦皆根基,Java語言基礎是Java程序設計的根基。教學目標知識目標:技能目標:素養(yǎng)目標:掌握Java程序基本結構掌握Java的基本語法熟悉Java的基本語句能夠運用Java基本語法和語句完成任務實現(xiàn)能夠在Java程序中添加必須的注釋,提高程序的可讀性能夠獨立完成拓展任務保持飽滿的學習熱情懂得知識技能儲備的必要性2.1.1Java程序的基本結構一個Java程序的基本結構大體可以分為包、類、main()主方法、標識符、關鍵字、語句和注釋等幾部分?!纠?-1】編寫一個Java小程序,輸出個人愛好。package;/**

*Java程序基本結構

*/

publicclassHobby{

publicstaticvoidmain(String[]args){

System.out.println("本人興趣愛好有:打籃球、跳舞、玩游戲!?。?);

}

}包注釋類主方法語句2.1.1Java程序的基本結構Java的注釋主要是提高程序的可讀性,是對程序的某個功能或某行代碼的解釋說明,可以讓開發(fā)者更好地閱讀和理解代碼的作用。注釋只在Java源文件中有效,在編譯程序時編譯器會忽略這些注釋信息,不會將其編譯到class字節(jié)碼文件中。Java提供三種注釋,分別為單行注釋、多行注釋和文檔注釋。1.//--單行注釋2./**/--多行注釋3./***/--文檔注釋2.1.2Java的注釋1.單行注釋單選注釋用符號“//”表示,其后面內容為注釋內容,用于對程序中某一行代碼進行注釋。單行注釋既可以單獨占一行,也可以放在語句的后面。2.多行注釋多行注釋,以符號“/*”開頭,“*/”結尾,被其包含的內容均為注釋內容,被注釋的內容可以是一行也可以是多行。3.文檔注釋文檔注釋,以符號“/**”開頭,以“*/”結尾,中間每行均以“*”開頭。開發(fā)人員可以使用JDK提供的javadoc工具將文檔注釋提取出來生成一份API幫助文檔。2.1.2Java的注釋2.1.2Java的注釋文檔注釋單行注釋多行注釋提示:放在注釋中的輸出語句沒有被執(zhí)行。所有注釋,無論是單行、多行還是文檔注釋均不被執(zhí)行?!纠?-2】在Java程序中,三種注釋的應用。2.1.3Java的標識符在Java中,包名、類名、對象名、變量名、常量名等可能由開發(fā)者命名的必須由標識符組成。Java中的標識符由字母(A-Za-z),數(shù)字(0-9)、下劃線(_)和美元符號($)組成,不能由數(shù)字開頭,不能是Java的關鍵字,標識符區(qū)別大小寫。例如:合法的標識符:one$、_2leaf、$threeFunction非法的標識符:4$sum、class、@www,第1個數(shù)字開頭,第2個是Java關鍵字,第3個有特殊符號。標識符需要遵守如下規(guī)則:(1)包名所有字母一律小寫,例如:cn.edu.cvit。(2)類名和接口名,每個單詞首字母大寫,其余小寫,例如:SumOfTwoNumber。(3)常量名和參數(shù)名,所有字母都大寫,單詞間以下劃線連接,例如:DAY_OF_WEEK。(4)變量名和方法名,第一個單詞全部小寫,從第二個單詞開始,首字母大寫,例如:printStar()。(5)true、false和null也不可以作為自定義標識符,它們在Java中具有特殊的意義。2.1.3Java的標識符2.1.4Java的關鍵字Java的關鍵字是Java語言預先定義的,有特殊意義的單詞,也稱為保留字。Java的關鍵字對Java的編譯器有特殊的意義,他們用來表示數(shù)據類型、修飾符、異常處理、程序結構等,關鍵字不能用作變量名、方法名、類名、包名和參數(shù)名。Java中常用的關鍵字有50個,下面列舉了Java所有的關鍵字。2.1.4Java的關鍵字下面列舉了Java所有的關鍵字。abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnstrictfpshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile2.1.4Java的關鍵字idea編譯器對Java關鍵字用不同顏色標記,這些關鍵字無需硬記,通過日后的學習,自然而然就清楚了它們的作用。在前面的小程序中,我們已見過的關鍵字有pakage(包)、class(類)、public(修飾符)、void(無返回值)。Java關鍵字都是小寫的,其中const和goto沒有任何意思,但Java仍將其作為保留關鍵字,不能作為自定義的標識符。2.1知識儲備–

基本數(shù)據類型整型浮點型字符型布爾型2.1.5數(shù)據類型計算機的出現(xiàn)為人類節(jié)省了大量的計算時間,慢慢地人們的需求越來越大,不僅單純需要計算機進行計算,更需要它能夠處理各類事務。因此,需要計算機能夠處理更為豐富的數(shù)據,Java的數(shù)據類型就是為了處理各種各樣的數(shù)據而誕生的。Java語言是強類型語言,每一種數(shù)據均有自己的數(shù)據類型,Java的數(shù)據類型分為兩大類,基本數(shù)據類型和引用類型?;緮?shù)據類型分為整型、浮點型、字符類型和布爾類型,引用類型分為類、接口、數(shù)組、空類型、枚舉和注解類型。2.1.5數(shù)據類型數(shù)值類型單精度浮點型(float)基本類型字符類型(char)雙精度浮點型(double)數(shù)據類型類(class)數(shù)組接口(interface)整型浮點型字節(jié)型(byte)短整型(short)整型(int)長整型(long)引用類型空類型(void)枚舉(enum)注解(annotation)布爾類型(boolean)1.整數(shù)類型取值為整數(shù)的數(shù)據類型為整型,Java中整型分為字節(jié)型(byte)、短整型(short)、整型(int)、長整型(long)。數(shù)據類型占用空間取值范圍字節(jié)型(byte)1個字節(jié)(8位)-27~27-1短整型(short)2個字節(jié)(16位)-215~215-1整型(int)4個字節(jié)(32位)-231~231-1長整型(long)8個字節(jié)(64位)-263~263-12.1.5數(shù)據類型每種數(shù)據類型都有對應的類型說明符,四種整數(shù)類型說明符表示如下:字節(jié)類型說明符為byte短整型類型說明符為short整型類型說明符為int長整型類型說明符為long2.1.5數(shù)據類型2.浮點類型浮點型數(shù)據取值一般為實數(shù),根據數(shù)據的范圍分為單精度浮點型(float)和雙精度浮點型(double)兩種類型。數(shù)據類型占用空間取值范圍單精度浮點型(float)4個字節(jié)(32位)-3.4E+38~-1.4E-45,1.4E-45~3.4E+38雙精度浮點型(double)8個字節(jié)(64位)-1.79769E+308~-4.9E-324,4.9E-324~1.79769E+3082.1.5數(shù)據類型單精度浮點型數(shù)據尾數(shù)可以精度到7位有效數(shù)字,雙精度浮點數(shù)據尾數(shù)可精確到15位有效數(shù)字,通常情況下浮點型數(shù)據很難完全精確,因為小數(shù)點最后幾位數(shù)會出現(xiàn)浮動。

3.字符類型取值為單個字符的類型為字符型,類型說明符為char。字符型在Java語言中占用2個字節(jié)(16位),取值范圍為0~65535,字符型和短整型都占用2個字節(jié),但是字符型可以取到更大的正整數(shù),因為字符類型沒有負數(shù)。2.1.5數(shù)據類型4.布爾類型Java中的布爾類型表示的是邏輯值,類型說明符為boolean,在內存中占一個字節(jié),其值只能是true或者false,用于表示邏輯表達式或者關系表達式的值,Java中的所有判斷條件結果均為布爾值。2.1知識儲備–

常量整型常量浮點型常量字符常量字符串常量布爾常量null常量2.1.6常量Java中的常量就是在程序運行過程中,其值不發(fā)生改變的量。常量分為整型常量、浮點型常量、字符型常量、布爾型常量、字符串常量等。1.整型常量整型常量是整數(shù)類型的數(shù)據,有二進制、八進制、十進制和十六進制4種表示形式。二進制整型常量:由0和1組成的數(shù)字序列,二進制整型常量以0b或者0B開頭,如0b01101101。八進制整型常量:由0~7組成的數(shù)字序列,八進制整型常量以0開頭,如0756。十進制整型常量,由0~9組成的數(shù)字序列,十進制整型常量不能以0開頭,如789。十六進制整型常量,由0~9,A~F(a~f)組成的數(shù)字序列,十六進制整型常量以0x或者0X開頭,如0xA92。對于長整型常量的表示需要在數(shù)字后邊加上l或者L,如7894329L。2.1.6常量【例2-3】編寫小程序,表示Java中的各種整型常量。2.1.6常量【例2-3】編寫小程序,表示Java中的各種整型常量,運行結果如下:2.1.6常量提示:二進制、八進制以及十六進制常量均轉換為十進制后輸出。長整型常量輸出時不顯示后邊的l或者L。1.整型常量十進制整型常量,由0~9組成的數(shù)字序列,十進制整型常量不能以0開頭,如789。十六進制整型常量,由0~,A~F(a~f)組成的數(shù)字序列,十六進制整型常量以0x或者0X開頭,如0xA92。對于長整型常量的表示需要在數(shù)字后邊加上l或者L,如7894329L。2.1.6常量2.1.6常量2.浮點型常量浮點型常量用于表示數(shù)學中的小數(shù),浮點型常量分為單精度浮點型常量和雙精度浮點型常量,雙精度浮點型數(shù)據的精度更高,數(shù)的范圍更大。單精度浮點型常量需要在數(shù)字后面加f或者F,雙精度浮點型常量后面可以加d或者D,也可以什么也不加。例如:15.3f、35.9、78.983d,第一個常量為單精度浮點型,第二個和第三個均為雙精度浮點型。浮點型常量還可以通過指數(shù)形式表示,例如:1.34e+3f。3.字符型常量字符常量用于表示一個字符,是由英文半角單引號括起來的字符。字符常量可以是單個字母、單位數(shù)字、標點符號、特殊字符或者由反斜扛開頭的轉義字符。例如:'A'、'@'、'\n'、'9',其中,'\n'是一個轉義字符,代表回車換行。4.布爾型常量布爾型常量用于區(qū)別一個事物的真假,其值為true和false兩個值。true代表真,false代表假。

5.字符串常量字符串常量用于表示一個字符串,是由英文半角雙引號括起來的字符串。例如:"Iloveyou!!!"、"student"、"123_456"。6.null常量null常量表示對象的引用為空,詳見后面章節(jié)。2.1.6常量【例2-4】編寫小程序,分別輸出Java的各種類型常量值。2.1.6常量【例2-4】編寫小程序,分別輸出Java的各種類型常量值,運行結果如下:2.1.6常量提示:本例題中各常量的值讀者可以自行設置。浮點型數(shù)據會有誤差。在輸出語句中,字符串型常量可以與輸出的其它字符串放在一個雙引號內。2.1知識儲備–變量2.1.7變量變量是指在程序運行過程中,其值發(fā)生變量的量。Java中變量是程序存儲的最基本單元,變量通常由數(shù)據類型、變量名和變量值三部分組成。變量是指在程序運行過程中,其值發(fā)生變量的量。Java中變量是程序存儲的最基本單元,變量通常由數(shù)據類型、變量名和變量值三部分組成。x

變量名6變量值存儲單元1.變量定義一般格式數(shù)據類型變量名1[=值1],變量名2[=值2],……,變量名n[=值n];例如:inta=10;定義整型變量a并為其賦初值為102.使用說明(1)數(shù)據類型為類型說明符,即變量所能存儲的數(shù)據類型;(2)變量名應用符合自定義標識符要求;(3)類型說明符與變量名之間至少用一個空格間隔;(4)最后一個變量名之后必須以分號結尾;(5)格式中的[]里面的內容可以省略,即變量在定義時可以賦初值,也可以不給賦初值;(6)同一數(shù)據類型變量可以一條語句定義多個;(7)各變量名之間用英文半角逗號分隔。2.1.7變量【例2-5】編寫一小程序,分別實現(xiàn)各種數(shù)據類型變量的使用。2.1.7變量package.cvit;

/**

*Java中的變量

*/

publicclassVariableDemo{

publicstaticvoidmain(String[]args){

inta=100;

//整型變量

floatb;

//單精度浮點型變量

b=2.5f;

charch1='A',ch2='a';

//字符型變量

booleanb1=false;

//布爾型變量

//輸出各變量的值

System.out.println("a="+a+",b="+b+",ch1="+ch1+",ch2="+ch2+",b1="+b1);

}

}2.1.7變量提示:變量在定義的同時可以有初值,也可以通過后邊的賦值語句賦值。如果變量的值發(fā)生變量,后面的值會覆蓋前面的值。2.1.8數(shù)據類型的轉換在Java的程序中,如何處理不同數(shù)據類型之間的運算呢?這將涉及到數(shù)據類型的轉換,根據轉換方式不同,數(shù)據類型轉換分為自動類型轉換(隱式轉換)和強制類型轉換(顯式轉換)兩種。1.自動類型轉換自動類型轉換是由編譯器自動完成的數(shù)據轉換,即將類型范圍小的數(shù)據直接轉換為類型范圍大的類型,例如,一個整型數(shù)據與一個雙精度浮點型數(shù)據進行運算時,會將其按照雙精度浮點數(shù)據進行運算。自動數(shù)據類型轉換需要滿足兩個條件,一是兩種數(shù)據類型之間可兼容,二是目標類型范圍大于源數(shù)據類型范圍。在Java的自動類型轉換中,字節(jié)型、短整型、整型、長整型、單精度浮點型、雙精度浮點型以及字符型均可以參與混合運算,按照從小范圍到大范圍數(shù)據的轉換原則,數(shù)值型數(shù)據從左向右轉換順序為byte→short→int→long→float→double字符型可以轉換為整型,即char→int。2.強制類型轉換當自動類型轉換不能滿足需要時,需要使用強制類型轉換(顯示轉換),強制類型轉換的目標數(shù)據范圍小于源數(shù)據范圍。一般格式:目標類型變量名=(目標類型)值;例如:intx=(int)10.5f;2.1.8數(shù)據類型的轉換2.1知識儲備–

運算符和表達式算術運算符賦值運算符關系運算符邏輯運算符條件運算符2.1.9運算符和表達式運算符是一種用來對數(shù)據進行操作的符號,也稱為操作符。表達式是由常量、變量、運算符和括號等組成的有意義的式子,每個表達式都會有確定的值,稱為表達式的值。表達式值的類型稱為表達式的數(shù)據類型,常量和變量都被稱為特殊的表達式。在Java中,參與運算的數(shù)據被稱為操作數(shù)(或者運算量),根據操作數(shù)的個數(shù)可將運算符分為單目、雙目和三目運算符,每種運算都有一種相對應的運算符。Java中常用的運算符分算術運算符、賦值運算符、關系運算符、邏輯運算符,條件運算符、位操作運算符等,本單元重點介紹前五種運算符。在Java中,運算符有優(yōu)先級,優(yōu)先級別高的先運算,優(yōu)先級別低的后運算,同時運算符還有結合性,結合性就是同等級別運算的運算順序,分為左結合性和右結合性,左結合性就是從左向右運算,右結合性從右向左運算。2.1.9運算符和表達式1.算術運算符算術運算符就是進行數(shù)學運算的符號,Java中算術運算符有+、-、*、/、%、++和--運算符,Java中的算術運算符見表2-3。操作數(shù)運算符含義用法舉例結果單目+正號+1010-負號a=5,-a5雙目+加法a=5+1015-減法a=5-8-3*乘法a=3*39/除法a=5/31%取模a=5%32單目++自增(前)a=5;b=++a;a=6,b=6++自增(后)a=5;b=a++;a=6,b=5--自減(前)a=5;b=--a;a=4,b=4--自減(后)a=5;b=a--;a=4,b=5算術運算符在使用中應注意的幾點:正號、負號、自增、自減運算符為單目運算符,其余運算符為雙目運算符。單目運算符優(yōu)先級別高于雙目運算符。*、/和%運算符優(yōu)級高級+(加法)和-(減法)運算符。目運算符的兩個操作數(shù)如果類型不同,系統(tǒng)將自動進行類型轉換。除法運算符兩個操作數(shù)均為整數(shù)時,其結果為整數(shù),即只取整數(shù)部分,小數(shù)部分被舍棄,例如:5/2,運算結果應該是2。如果兩個操作數(shù)中有一個為浮點型數(shù)據,其結果為浮點型,例:5.0/2或者5/2.0其結果均為2.5。2.1.9運算符和表達式自增、自減運算符只能用于變量,不能用于常量或者表達式。加號運算符,同時也是字符串連接符,例如:"student"+"Tom",結果為字符串"studentTom"。算術運算符中的正(+)、負(-)、自增(++)、自減(--)運算符具有右結合性,其余運算符具有左結合性。2.1.9運算符和表達式【例2-7】編寫一小程序,實現(xiàn)算術運算符的使用。package.cvit;

/**

*算術運算符

*/

publicclassOperatorDemo1{

publicstaticvoidmain(String[]args){

inta=3+(-4)-1;

//正、負、加、減運算

intb=a*5;

//乘法運算

intc=b/4;

//除法運算

doubled=b/4.0;

inte=-7%3;

//取模運算

doublef=16.5%5;

System.out.println("a="+a+",b="+b+",c="+c+",d="+d+",e="+e+",f="+f);

}

}

運行結果:2.1.9運算符和表達式提示:算術運算符中的*、/、%運算符優(yōu)先級別相同。在輸出各變量值時,使用了“+“連接符用于連接字符串和變量,原樣輸出字符串以及變量的值,加號連接符不輸出?!纠?-8】編寫一小程序,實現(xiàn)自增、自減運算符的使用。運行結果:package.cvit;

/**

*自增、自減運算符

*/

publicclassOperatorDemo2{

publicstaticvoidmain(String[]args){

inti=5,j;

j=++i;

//自增在前

System.out.println("j="+j+",i="+i);

j=i++;

//自增在后

System.out.println("j="+j+",i="+i);

j=--i;

//自減在前

System.out.println("j="+j+",i="+i);

j=i--;

//自減在后

System.out.println("j="+j+",i="+i);

}

}

2.1.9運算符和表達式提示:自增、自減運算符在變量前,變量自增(自減)1作為表達式的值,自增、自減運算符在變量后,變量的值作為表達式的值,之后變量自增(自減)1,例如:++i表達式的值為變量i自增1后的值,i++表達式的值為變量i的值,而兩個表達式執(zhí)行后變量i自身均增1。自增、自減運算符無論在變量前還是變量后,最終變量的值均自增(自減)1。2.1.9運算符和表達式2.賦值運算符Java中的賦值運算符為“=“,其作用是將賦值號右邊的常量、變量或者表達式的值賦給左邊的變量。Java還提供了復合賦值運算符,即將算術運算符或位運算符進行組合,從而簡化賦值語句,常用復合賦值運算符有+=、-=、*=、/=和%=,Java中的賦值運算符及常用復合賦值運算符見表2-4。2.1.9運算符和表達式操作數(shù)運算符含義用法舉例結果雙目=賦值a=10a=10+=加等于a=5;a+=10a=15-=減等于a=5;a-=10a=-5*=乘等于a=5;a*=10a=50/=除等于a=5;a/=2.0a=2.5%=模等于a=5;a%=2a=12.1.9運算符和表達式賦值運算符在使用中應注意的幾點:運算符左端只能是變量,不能為常量或者表達式。復合賦值運算符的運算原則是相當于將左邊的變量復制到賦值號的右端,然后將右端表達式的值賦值給左端的變量,例如:inta=10;a+=20;第二條語句相當于a=a+20;。如果復合賦值運算符右端為表達式,運算時相當于將右邊表達式用小括號括起來再參與運算,例如:inta=10,b=20;a*=b+30;第三條語句相當于a=a*(b+30);賦值運算符具有右結合性。2.1.9運算符和表達式【例2-9】編寫一小程序,實現(xiàn)賦值運算符的使用。package.cvit;

/**

*賦值運算符

*/

publicclassOperatorDemo3{

publicstaticvoidmain(String[]args){

inta=10,b=20;

//賦值運算符

a+=a-=a*=a/=a%3;

//復合賦值運算符

System.out.println("a="+a);

}

}

表達式a+=a-=a*=a/=a%3的執(zhí)行過程如下:

多個復合賦值運算符的運行原則:每次運算原變量值保持不變,表達式的值繼續(xù)參與運算,直到整條語句結束,將最終結果賦值給變量

*第一步,計算a%=3,值為1

*第二步,計算a/=1,值為10

*第三步,計算a*=10,值為100

*第四步,計算a-=100,值為-90

*第五步,計算a+=-90,值為-80

2.1.9運算符和表達式【例2-9】編寫一小程序,實現(xiàn)賦值運算符的使用。運行結果:2.1.9運算符和表達式提示:算術運算符中的*、/、%運算符優(yōu)先級相同。在輸出各變量值時,使用了字符串連接符可以連接字符串和變量,原樣輸出字符串以及變量的值,字符串連接符不輸出。3.關系運算符在程序中經常需要比較兩個量的大小關系,以決定程序下一步的工作。比較兩個量的運算符稱為關系運算符。關系運算符包括大于>、<、==、>=、<=和!=六種,Java中的關系運算符見表2-5。2.1.9運算符和表達式操作數(shù)運算符含義用法舉例結果雙目>

大于10>8true<

小于10<8false==等于10==8false>=大于等于10>=8true<=小于等于10<=8false!=不等于10!=8true關系運算符在使用中應注意的幾點:關系運算符的優(yōu)先級低于算術運算符,高于賦值運算符。在六個關系運算符中,<、<=、>、>=的優(yōu)先級相同,高于==和!=,==和!=的優(yōu)先級相同。關系表達式的結果為邏輯值。關系運算符的結合性為左結合。2.1.9運算符和表達式【例2-10】編寫一小程序,實現(xiàn)關系運算符的使用。package.cvit;

/**

*關系運算符

*/

publicclassOperatorDemo4{

publicstaticvoidmain(String[]args){

inta=10,b=8;

System.out.println("a>b嗎?"+(a>b));

System.out.println("a<b嗎?"+(a<b));

System.out.println("a==b嗎?"+(a==b));

System.out.println("a!=b嗎?"+(a!=b));

}

}運行結果:2.1.9運算符和表達式提示:關系運算符不可以連寫,例如:10>5>3這種寫法是錯誤的,正確寫法為10>5&&5>3,其中的“&&”為邏輯運算符,詳見邏輯運算符。關系運算符通常用于條件判斷,詳見控制結構。2.1.9運算符和表達式Java中邏輯運算符,有&、|、!、^、&&和||6種,Java中的關系運算符見表2-6。操作數(shù)運算符含義用法舉例結果雙目&邏輯與true&truetruetrue&falsefalsefalse&truefalsefalse&falsefalse|邏輯或true|truetruetrue|falsetruefalse|truetruefalse|falsefalse單目

!邏輯非!truefalse雙目^邏輯異或true^truefalsetrue^falsetruefalse^truetruefalse^falsefalse&&短路與true&&truetruetrue&&falsefalsefalse&&truefalsefalse&&falsefalse||短路或true||truetruetrue||falsetruefalse||truetruefalse||falsefalse2.1.9運算符和表達式4.邏輯運算符邏輯運算符在使用中應注意的幾點:邏輯運算符的優(yōu)先級低于算術運算符和關系運算符,高于賦值運算符。在六個邏輯運算符中,優(yōu)先級別由大到小的順序是!>&>^>

|>&&>||。邏輯與和短路與運算符,只要有一個操作數(shù)的值為false,結果為false,兩個操作數(shù)均為true時,結果為true。邏輯或和短路或運算符,只要有一個操作數(shù)的值為true,結果為true,兩個操作數(shù)均為false時,結果為false。邏輯異或運算符,兩個操作數(shù)的值不同時,結果為true,反之,結果為false。2.1.9運算符和表達式邏輯與和短路與的區(qū)別,短路與運算符左邊表達式的值為false時,不再運算右邊表達式,例如:inta=10,b=20;a>10&&b++>20;程序運算后b值仍為20不變,如果將短路與改為邏輯與,程序運行后,b的值為21。邏輯或與短路或的區(qū)別,短路或左端表達式值為true時,不再運算右邊表達式的值。邏輯非(!)運算符具有右結合性,其余邏輯運算符具有左結合性。2.1.9運算符和表達式【例2-10】編寫一小程序,實現(xiàn)關系運算符的使用。運行結果:package.cvit;

/**

*邏輯運算符

*/

publicclassOperatorDemo5{

publicstaticvoidmain(String[]args){

inta=10,b=20;

//邏輯與短路與的區(qū)別

System.out.println("邏輯與:"+(a>b&&a++<b)+",a="+a);

System.out.println("短路與:"+(a>b&a++<b)+",a="+a);

//邏輯或與短路或的區(qū)別

System.out.println("邏輯或:"+(a<b||b++<a)+",b="+b);

System.out.println("短路與:"+(a<b|b++<a)+",b="+b);

}

}

2.1.9運算符和表達式提示:例題中邏輯與和邏輯或表達式運算后,變量值發(fā)生了變化。例題中短路與和短路或表達式運算后,變量的值未發(fā)生變化。5.條件運算符Java中的條件運算符“?:”,是唯一的三目運算符,一般格式為:

表達式1?表達式2:表達式3其中,表達式1為判斷條件,其結果為邏輯值true或者false。當表達式1值為true時,條件表達式的值為表達式2的值,否則,條件表達式的值為表達式3的值。2.1.9運算符和表達式條件運算符在使用中應注意的幾點:條件表達式的“?”和“:”是一對運算符,不可以分開使用。條件運算符的優(yōu)先級別高于賦值運算符,低于其它運算符。條件運算符可以嵌套,具有右結合性。2.1.9運算符和表達式【例2-12】編寫一小程序,利用條件運算符判斷一個人是否為成人(年齡=18為成人)。運行結果:package.cvit;

/**

*條件運算符求兩個數(shù)的最大值

*/

publicclassOperatorDemo6{

publicstaticvoidmain(String[]args){

inta=10,b=20,max;//定義變量

//通過條件運算符將變量a,b中的最大值賦給max

max=a>b?a:b;

System.out.println("max="+max);//輸出最大值

}

}

2.1.9運算符和表達式提示:條件運算符可以嵌套使用,例如:a>b?a:b>c?b:c,可以理解為a>b?a:(b>c?b:c)。條件運算符相當于第三單元中的if……else語句。6.運算符的優(yōu)先級別在進行比較復雜的表達式運算時,必須清楚運算符的優(yōu)先級別,才可以弄清楚運算的先后順序,Java運算符的優(yōu)先級別由高到低排列見表2-7。優(yōu)先級運算符運算符種類結合性1.[]()點及括號運算符由左向右2+(正號)-(負號)++--!~(數(shù)據類型)單目運算符從右到左3*/%算術運算符從左向右4+(加)–(減)算術運算符從左向右5<<>>>>>位左移、右移運算符從左向右6<<=>>=關系運算符從左至右7==!=關系運算符從左向右8&位運算符、邏輯運算符從左向右9^位運算符、邏輯運算符從左向右10|位運算符、邏輯運算符從左至右11&&邏輯運算符從左向右12||邏輯運算符從左至右13?:條件運算符從右到左14=+=-=*=/=%=<<=>>=>>>=&=^=|=賦值運算符、復合賦值運算符從右到左2.1.9運算符和表達式2.1知識儲備–

控制臺輸入/輸出

控制臺輸入語句

控制臺輸出語句2.1.10控制臺輸出Java的控制臺輸出語句有三種,分別為System.out.println();、System.out.print();和System.out.printf();第三種是延續(xù)了C語言的輸出語句,讀者可查閱C語言相關資料。System.out.println();是最常用的輸出語句,主要功能是將小括號的內容轉換成字符串輸出到控制臺窗口,并換行。System.out.print();該語句與第一種輸出語句的區(qū)別是輸出字符串后不換行。2.1.10控制臺輸出兩種輸出語句小括號里面的輸出項之間用“+”連接符連接,用雙引號引起來的字符串原樣輸出,如果是常量、變量或者表達式輸出對應的值,例如:inta=100;System.out.println(“a=”+a);輸出結果為a=100。2.1.11控制臺輸入Java中的輸入語句需要通過對象來獲取輸入內容,并非單條語句可以實現(xiàn)。首先需要創(chuàng)建Scanner對象,然后通過調用該對象相關的方法來接收從鍵盤輸入的不同類型數(shù)據。1.創(chuàng)建Scanner對象一般格式:Scanner對象名=newScanner(System.in);使用說明:(1)對象名稱是合法的自定義標識符。(2)System.in是標準輸入流,用于打開并準備提供輸入數(shù)據。(3)Scanner類在java.util包下,java.util包是Java內置的一個工具包,其中包含一系列常用的工具類,使用時需要導包,在類文件的包名的下方使用import關鍵字導入相應的包,如:importjava.util.Scanner;導入Scanner類。2.1.11控制臺輸入2.Scanner對象常用的方法Scanner對象可以接受多種數(shù)據類型,通過Scanner對象調用相關的方法,程序運行后,控制臺會一直等待輸入數(shù)據,直到回車結束,常用輸入數(shù)據的方法見表2-8。方法名方法的描述nextByte()輸入字節(jié)型數(shù)據nextShort()輸入短整型數(shù)據nextInt()輸入整型數(shù)據nextLong()輸入長整型數(shù)據nextFloat()輸入單精度浮點型數(shù)據nextDouble()輸入雙精度浮點型數(shù)據next()輸入字符串,得不到帶空格的字符串nextLine()輸入字符串,可以得到帶空格的字符串2.1.11控制臺輸入next()和nextLine()的區(qū)別,next()方法忽略有效字符之前的空格、Tab鍵和Enter鍵,錄入過程中遇到空格就停止錄入,空格及其空格后的內容均被放入緩沖區(qū),Tab鍵和Enter鍵被視為結束符,因此,它獲取不到帶空格的字符串。nextLine()方法錄入的是Enter鍵之前的所有字符,它可以得到帶空格的字符串?!纠?-13】編寫一小程序,從鍵盤輸入一個整數(shù),并輸出。運行結果:package.cvit;

importjava.util.Scanner;

/**

*控制臺輸入語句

*/

publicclassConsoleInput{

publicstaticvoidmain(String[]args){

intn;

//定義一個整型變量

Scannersc=newScanner(System.in);

//創(chuàng)建Scanner對象

System.out.print("請輸入一個整數(shù):");

//輸出提示輸入一個整數(shù)

//調用Scanner對象中的nextInt()接收鍵盤輸入的整數(shù),并賦值給n

n=sc.nextInt();

System.out.println("所輸入的數(shù)據是:"+n);

溫馨提示

  • 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

提交評論