![Java面向?qū)ο蟪绦蛟O(shè)計(第二版)課件第2章-基本數(shù)據(jù)類型與運算_第1頁](http://file4.renrendoc.com/view11/M01/0E/0A/wKhkGWWKuMOABGYyAAB4trrRS8I536.jpg)
![Java面向?qū)ο蟪绦蛟O(shè)計(第二版)課件第2章-基本數(shù)據(jù)類型與運算_第2頁](http://file4.renrendoc.com/view11/M01/0E/0A/wKhkGWWKuMOABGYyAAB4trrRS8I5362.jpg)
![Java面向?qū)ο蟪绦蛟O(shè)計(第二版)課件第2章-基本數(shù)據(jù)類型與運算_第3頁](http://file4.renrendoc.com/view11/M01/0E/0A/wKhkGWWKuMOABGYyAAB4trrRS8I5363.jpg)
![Java面向?qū)ο蟪绦蛟O(shè)計(第二版)課件第2章-基本數(shù)據(jù)類型與運算_第4頁](http://file4.renrendoc.com/view11/M01/0E/0A/wKhkGWWKuMOABGYyAAB4trrRS8I5364.jpg)
![Java面向?qū)ο蟪绦蛟O(shè)計(第二版)課件第2章-基本數(shù)據(jù)類型與運算_第5頁](http://file4.renrendoc.com/view11/M01/0E/0A/wKhkGWWKuMOABGYyAAB4trrRS8I5365.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章基本數(shù)據(jù)類型與運算引例//文件名Jpro2_1.javaimportjava.io.*;//引入類publicclassJpro2_1//定義主類
{publicstaticvoidmain(String[]args)//定義main()方法
{
intpro_score,eng_score,math_score;
//聲明變量
floataverage_score;
pro_score=89;
//輸入三門課程成績
eng_score=86;
math_score=93;
average_score=(pro_score+eng_score+math_score)/3;//計算平均成績
System.out.println(“Scoreofthreecourses
is"+pro_score
+“,”+eng_score+“,”+math_score);
//標準輸出
System.out.println("Theaveragescoreis:"+average_score);
}}標識符Java語言對標識符還有如下規(guī)定:長度不限,但不宜過長。一般遵循“見名知義”原則,即為標識符取一個能代表其意義的名稱。區(qū)分字母的大小寫。如Student和student是兩個不同的標識符。不能是關(guān)鍵字。關(guān)鍵字根據(jù)它們的意義分為以下幾種類型:數(shù)據(jù)類型:boolean,int,long,short,byte,float,double,char,class,interface流程控制:if,else,do,while,for,switch,case,default,break,continue,return,try,catch,finally修飾符:public,protected,private,final,void,static,strictfp,abstract,transient,synchronized,volatile,native
動作:package,import,throw,throws,extends,implements,this,Super,instanceof,new保留字:true,false,null,goto,constJava基本數(shù)據(jù)類型基本數(shù)據(jù)類型包括數(shù)值型、字符型及布爾型。復(fù)雜數(shù)據(jù)類型包括類、接口和數(shù)組等,也稱為引用類型,即通過對象的創(chuàng)建,獲得引用類型的值。教學(xué)內(nèi)容Java中的基本數(shù)據(jù)類型及其應(yīng)用定義Java標識符的基本規(guī)則Java中常量與變量的含義,定義與使用它們的基本方法Java中的運算符、常量、變量及函數(shù)的含義通過運算符構(gòu)成符合Java規(guī)范的表達式的基本方法賦值語句的使用以及數(shù)據(jù)轉(zhuǎn)換與實現(xiàn)機制教學(xué)目標根據(jù)Java規(guī)范在程序中正確定義并使用各種標識符理解3種基本數(shù)據(jù)類型的含義并能正確地識別與應(yīng)用根據(jù)處理對象的特征正確定義變量類型在程序中給變量賦值通過常量、變量、函數(shù)及運算符構(gòu)造符合Java規(guī)范的表達式數(shù)值型整數(shù)和浮點數(shù)兩種類型,整數(shù)不帶小數(shù)點,浮點數(shù)含有小數(shù)點。整數(shù)有byte(字節(jié)型)、short(短整型)、int(整型)及l(fā)ong(長整型)等4種,浮點型數(shù)據(jù)有float(單精度浮點型)和double(雙精度浮點型)兩種。
字符型Java中的字符型數(shù)據(jù)用char表示,它的值用16個bit來存儲,取值范圍是0~65535。它表示的是Unicode碼表所定義的國際化字符集中所收集的所有字符,根據(jù)Unicode編碼,可以比較其大小,類似于ASCII碼的比較。與其他語言一樣,Java也用單引號來表示字符型數(shù)據(jù)。如'A'、'c'、'#'、'&'與'9'等等。例如,chargrade1='A',grade2='B';
顯然grade1和grade2可以比較大小,'A'的編碼值小'B'的編碼值,所以grade1小于grade2。布爾型布爾型(boolean)是一種表示邏輯值的簡單數(shù)據(jù)類型。它的取值只能是常量true或false這兩個值中的一個,在存儲器中占8個bit。通常用于程序中的一些邏輯判斷從而對程序的運行進行控制。例如,根據(jù)成績的及格線60分,判斷考試是否通過。
intgrade;
booleanpassOrNo;
if(grade>=60)
passOrNo=true;
elsepassOrNo=false;常量常量(constant),就是在程序運行過程中其值不會被改變的量,就象我們在數(shù)學(xué)中常用到的π=3.14。常量也叫常數(shù),也被稱為“字面量”。在Java語言中,按照數(shù)據(jù)的特征,可將常量分為整型、浮點型、字符型、字符串型與布爾型等5種類型。字符型常量是指Unicode字符集中的所有單個字符,包括可以打印的字符和不可打印的控制字符,它的表示形式有四種:以單引號括起來的單個字符,例如,'A'、'h'、'*'、'1'。以單引號括起來的"\"加三位八進制數(shù),形式為'\ddd',其中d可以是0~7中的任一個數(shù),例如,'\141'表示字符'a'。其中ddd的取值范圍只能在八進制數(shù)的000~777之間,因而它不能表示Unicode字符集中的全部字符。以單引號括起來的"\u"加四位十六進制數(shù),例如,'\u0061'表示字符'a'。這種表示方法的取值范圍與char型數(shù)據(jù)相同,因而可以表示Unicode字符集中的所有字符。對于那些不能被直接包括的字符以及一些控制字符,Java定義了若干轉(zhuǎn)義序列。如'\\'代表'\','\n'代表換行等。如表2-1所示的是Java中的一些字符轉(zhuǎn)義序列。變量變量(variables)是Java程序中的基本存儲單元,是在程序運行過程中其值可以改變的量。一個變量蘊含有三個含義:(1)變量的名稱。變量的名稱簡稱變量名,變量名是用戶自己定義的標識符,它表明了變量的存在和唯一性;(2)變量的屬性。即變量的數(shù)據(jù)類型,包括簡單數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型;(3)變量的初值。變量的值是指存放在變量名所標記的存儲單元中的數(shù)據(jù)。變量的聲明方法是數(shù)據(jù)類型變量名1[=初值1][,變量名2[=初值2]……];變量定義和賦值示例一個變量必須經(jīng)過聲明、賦值之后才能被使用;類型相同的幾個變量可以在同一個語句中被聲明及被賦初值,相互之間應(yīng)用“,”作間隔。//文件名Jpro2_2.java:publicclassJpro2_2{publicstaticvoidmain(Stringargs[]){shortb=050;intc=0xA3;
longd=2.0E+10;bytee=129;
floatff=1.234;doubledd=34.56d;System.out.println("短整型變量的值:b="+b);System.out.println("整型變量的值:c="+c);System.out.println("長整型變量的值:d="+d);System.out.println("字節(jié)型變量的值:e="+e);
System.out.println("單精度度浮點型的值:ff="+ff);System.out.println("雙精度浮點型的值:dd="+dd);
}}類型轉(zhuǎn)換Java是強類型語言,其中的每個數(shù)據(jù)都有特定的數(shù)據(jù)類型。Java中所有的數(shù)值傳遞都必須進行類型相容性檢查以保證類型是兼容的。任何類型不匹配都將被報告為錯誤。因此,我們在進行程序設(shè)計時經(jīng)常要對一些類型不同的數(shù)據(jù)進行類型轉(zhuǎn)換。Java的數(shù)據(jù)類型轉(zhuǎn)換有兩種情況:表達式中的自動轉(zhuǎn)換和強制轉(zhuǎn)換。1.表達式中的自動轉(zhuǎn)換java表達式中,當涉及到兩個不同類型的數(shù)據(jù)進行運算時,系統(tǒng)會自動把兩個不相同的類型數(shù)據(jù)轉(zhuǎn)換成相同的類型再進行運算。這種轉(zhuǎn)換是在程序運行過程中不需人為干預(yù)而自動進行的,但轉(zhuǎn)換是有條件的,即兩種數(shù)據(jù)類型必須是兼容的,規(guī)則是把表達式中取值范圍小的類型數(shù)據(jù)轉(zhuǎn)換成另一取值范圍大數(shù)據(jù)的類型。自動轉(zhuǎn)換源數(shù)據(jù)類型目標數(shù)據(jù)類型byteshort、int、long、float、doubleshortint、long、float、doublecharint、long、float、doubleintlong、float、doublelongfloat、doublefloatdouble可自動進行轉(zhuǎn)換的數(shù)據(jù)類型如表所示。強制類型轉(zhuǎn)換對于類型不一致數(shù)據(jù),在寫表達式時不能進行自動類型轉(zhuǎn)換,這時就要執(zhí)行強制類型轉(zhuǎn)換。強制類型轉(zhuǎn)換的一般格式為:(目標數(shù)據(jù)類型)被轉(zhuǎn)換數(shù)據(jù)被轉(zhuǎn)換數(shù)據(jù)可以是變量或表達式等,如要把double型變量money的值轉(zhuǎn)換成int型,形式為:(int)money。強制轉(zhuǎn)換示例例2.4從鍵盤讀入一個字符,并輸出這個字符。
//文件名Jpro2_4.javaimportjava.io.*;publicclassJpro2_4{ publicstaticvoidmain(Stringargs[]){charch='';System.out.println("Inputaintergerorcharacter:");try{ ch=(char)System.in.read();//從鍵盤中讀入一個字符
} catch(IOExceptione) { }System.out.println("Theinputis\'"+ch+"\'");}}運算符和表達式一個運算符,a、b、c本身也是一個表達式。一個常量或一個變量是最簡單的表達式。一般的表達式是指由數(shù)據(jù)和運算符連接在一起的符合Java語法規(guī)則的式子。這里的數(shù)據(jù)是常量或變量,表達式中數(shù)據(jù)的連接符+、-、*、=及<就是運算符。Java的運算符主要包括算術(shù)運算符、關(guān)系運算符、邏輯運算符等。算術(shù)運算符和算術(shù)表達式單目運算符是指只對一個操作數(shù)運算的運算符。Java中的單目運算符有++(自增)、--(自減)和-(取反)等3種類型。單目運算符++與--可以位于操作數(shù)的左邊或右邊,但在使用時是有差別的。如:a++、a--:表示先使用a,再使a增(減)1;++a、--a:表示先使a增(減)1,再使用a。雙目運算符是指算術(shù)運算符的左、右兩邊均要有操作數(shù)。Java中的雙目算術(shù)運算符有+(和運算)、-(差運算)、*(積運算)、/(除運算)及%(求余運算)。注意:兩個整數(shù)相除時其結(jié)果仍是整數(shù),小數(shù)部分被舍去。另外,%運算符既可以對整數(shù)進行操作也可以對浮點數(shù)進行操作。當除數(shù)為0時,/和%運算會產(chǎn)生異常,需要進行異常處理。算術(shù)表達式算術(shù)運算符連接的操作數(shù)為數(shù)值型。由算術(shù)運算符連接的式子稱為算術(shù)表達式。例如,++a,s=(a1+a2+a3)/3,totalPrice=(weight*unitPrice+tax)*discount.關(guān)系運算符和關(guān)系表達式關(guān)系運算符是用來比較兩個值之間的大小關(guān)系的。關(guān)系運算的結(jié)果是布爾(boolean)型,結(jié)果為真(true)或假(false)。Java中的關(guān)系運算符如表2-3所。邏輯運算符和邏輯表達式
Java中共有6個邏輯運算符,表達式結(jié)果為布爾類型。表2-4中&和&&、|和||在形式上具有相同的名稱及功能,其實它們是有差別的。&&和||也被稱為“短路邏輯運算符”,在運算過程中會產(chǎn)生“短路效應(yīng)”,如a&&b,當a為false時不再判斷b,直接判定a&&b的值為false;若是a||b,當a為true時不再判斷b,直接判定a||b的值為true。&和|運算符是先計算出兩邊操作數(shù)的值,然后再進行邏輯判斷。當&、^和|的操作數(shù)為布爾類型時它們是邏輯運算符,進行邏輯運算,但若操作數(shù)為整數(shù)及字符時,它們會作為位運算符進行位運算。邏輯運算和關(guān)系運算示例例2.5關(guān)系運算與邏輯運算示例。//文件名Jpro2_5.javapublicclassJpro2_5{publicstaticvoidmain(Stringargs[]){intnumber1=10,number2=20;
booleanb1,b2,b3=false,f1,f2,b4=true;b1=number1>number2;b4=b1&&(b2=number1<number12);//b1為false,b4值未被改變
f1=b4||(b3=number1<number12);
//b4為true,b3值未被改變
f2=f1|(b4=number1>number12);
//b4值被改變
System.out.println("number1="+number1);
System.out.println("number2="+number2);
System.out.println("number1>number2resultis"+b1);System.out.println("b1&&(b2=number1<number2)resultis"+b4);System.out.println("f1="+f1+",f2="+f2);}}三元運算符Java中,有一種特別的三元運算符構(gòu)成的條件表達式。使用格式如下:條件表達式?語句1:語句2其中的?和:稱為三元運算符,它們必須一同出現(xiàn),此運算符需要三個操作數(shù)。其中語句1和語句2可以是復(fù)合語句。意思是,當條件表達式值為true時,執(zhí)行語句1,否則執(zhí)行語句2。說明:條件表達式運算符的優(yōu)先級別很低,僅優(yōu)先于賦值運算符。條件運算符的結(jié)合性為自右向左。例如,(a>b)?a:(c>d)?c:d其中a=5,b=8,c=1,d=9。根據(jù)右結(jié)合性,應(yīng)先計算(c>d)?c:d。因為1>9為false,故取d=9為該表達式的結(jié)果。再計算(a>b)?a:d,則最終結(jié)果為9。位運算符Java中,可以使用位運算直接對整數(shù)類型和字符類型的數(shù)據(jù)的位進行操作。Java中的位運算符如表2-5所示。賦值運算符和賦值表達式賦值運算符兩邊數(shù)據(jù)類型可以不相同但必須相容,當數(shù)據(jù)類型不相同時:若右邊數(shù)據(jù)取范圍小于左邊數(shù)據(jù),則會自動轉(zhuǎn)換;反之,則必須強制轉(zhuǎn)換。擴展賦值運算符的使用不僅可以使程序表達簡練,而且可以提高程序的編譯速度。運算符優(yōu)先級對于Java語言中的一個表達式,如例2.6中的幾個表達式,包含了多個運算符,哪個運算符先運算哪個后運算,與數(shù)學(xué)中的運算規(guī)則類似,也要有規(guī)則,即設(shè)置運算符的優(yōu)先級。Java語言運算符的運算級別共分為15級,其中1級的優(yōu)先級最高,15級最低,參看教材表2-7所示。例如,計算下面表達式的值。inta=3,b=8,c;c=a+++b;上述第二條語句被執(zhí)行后,變量a、b、c的值分別是多少呢?如果表達式被理解為c=a+(++b),那么,a=3、b=9、c=12。其實結(jié)果并不是這樣,而是a=4、b=8、c=11。這是因為運算符++作為“先用后增”的優(yōu)先級高于作為“先增后用”運算符的優(yōu)先級。建議初學(xué)者在寫表達式時多使用括號,這樣既能防止引起混亂,又方便別人閱讀你的程序代碼。示例例2.7判斷2006年是否閏年。//文件名Jpro2_7.javapublicclassJpro2_7{publicstaticvoidmain(Stringargs[]){
intyear=2006;booleant;t=year%400==0||year%4==0&&year%100!=0;System.out.println(year+"isintercalaryyear="+t);}
運行結(jié)果:2006isintercalaryyear=false注意:語句t=year%400==0||year%4==0&&year%100!=0;總體是一個賦值運算表達式,右邊部分是邏輯表達式,其中包含算術(shù)運算、關(guān)系運算和邏輯運算。本程序每次運行只能判斷一個年份是否為閏年,每判斷一個年份,需要修改程序中的intyear=2006;因此很不方便判定多個年份是否為閏年。如果采用從命令行接收數(shù)據(jù)的方法,將大大改善程序。添加語句:
year=Integer.parseInt(args[0]);實例1例2.8請判斷一個三位數(shù)是否為水仙花數(shù)。水仙花數(shù)是指一個n位數(shù)(n≥3),它的每個位上的數(shù)字的n次冪之和等于它本身。(例如:1^3+5^3+3^3=153)分析:采用自頂向下、逐步求精的方法,先給出總的框架,再分析問題,然后逐步細化。1.總體步驟(1)輸入一個三位數(shù)n;(2)分別求出個、十、百的三個位上的數(shù),并分別對它們計算三次冪;(3)將這三個冪相加,判斷是否與n相等。2.逐步細化及分析(1)定義一個正整數(shù),保存在一個整型變量s中;(2)這一步是數(shù)據(jù)處理過程,要求完成的任務(wù)較多。根據(jù)數(shù)學(xué)運算方便,從高位開始,先分別求出三個位上的數(shù),再進行相加。百位=s/100,十位=(s-百位*100)/10,個位=s%10,和=百位*百位*百位+百位*百位*百位+個位*個位*個位(3)第二步計算的和與n相等,如果相等,輸出是水仙花數(shù),否則輸出不是。程序代碼//文件名Jpro2_8.javaimportjavax.swing.JOptionPane;publicclassJpro2_8{publicstaticvoidmain(String[]args){inthNumber,tNumber,pNumber;doubleadd;StringintString=JOptionPane.showInputDialog(null,"請輸入一個整數(shù):","例2.8演示",JOptionPane.QUESTION_MESSAGE);
intnumber=Integer.parseInt(intString);hNumber=number/100;tNumber=(number-hNumber*100)/10;pNumber=number%10;add=Math.pow(hNumber,3)+Math.pow(tNumber,3)+Math.pow(pNumber,3);
System.out.println("百位數(shù)是:"+hNumber+"\t十位數(shù)是:"+tNumber);System.out.println("個位數(shù)是:"+pNumber+"\t各位數(shù)的三次冪的和是:"+add);if(add==number)System.out.println("這個數(shù)"+number+"是水仙花數(shù)!");elseSystem.out.println("這個數(shù)"+number+"不是水仙花數(shù)!");}}實例2例2.9從鍵盤輸入一個字符,如果該字符是英文字母,則進行大小寫轉(zhuǎn)換。也就是說,如果輸入的是大寫字母則輸出其小寫字母,反之則輸出大寫字母。分析:采用自頂向下、逐步求精的方法,先給出總的框架,再分析問題,然后逐步細化。1.總體步驟(1)輸入一個字符c;(2)判斷該字符是否為英文字母;(3)將該字母進行大小寫轉(zhuǎn)換并輸出。2.逐步細化及分析(1)定義兩個字符變量c、s,分別保存原字符和轉(zhuǎn)換后的字符。定義一個short型變量k定義字母A與a在Unicode中的位置差。注意:這里的k也可定義為int型變量,但在后面給字符s賦值時需進行強制轉(zhuǎn)換類型;(2)先從鍵盤上讀入一個字符,判斷該字符是否為英文字母。(3)若該字符是英文字母,再判斷該字母是大寫字母還是小寫字母。然后用該字母加或減其大小寫字母在Unicode中位置差的方法來實現(xiàn)轉(zhuǎn)換。注:大、小寫字母在Unicode中均是按順序排列的,且大寫在前、小寫在后,所以可以用’a’-‘A’來表示每個大小寫字母之間的位置差。程序代碼//文件名Jpro2_9.javaimportjava.io.*;publicclass
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級上冊數(shù)學(xué)聽評課記錄 《平行四邊形》人教版
- 初中數(shù)學(xué)人教版九年級下冊同步聽評課記錄28-2-1 第1課時《 解直角三角形》
- 2025年筒式采煤機合作協(xié)議書
- 北師大版七年級下冊數(shù)學(xué)聽評課記錄:第六章《概率初步回顧與思考》
- 部審湘教版七年級數(shù)學(xué)下冊3.3 第2課時《利用完全平方公式進行因式分解》聽評課記錄
- 青島版數(shù)學(xué)七年級下冊《10.1 認識二元一次方程組》聽評課記錄2
- 人教版道德與法治八年級上冊5.3《善用法律》聽課評課記錄
- 湘教版數(shù)學(xué)九年級上冊4.1.2《正弦》聽評課記錄
- 五年級上數(shù)學(xué)聽評課記錄
- 土地復(fù)墾合同范本
- 江蘇省鹽城市鹿鳴路初級中學(xué)2024-2025學(xué)年八年級上學(xué)期期末考試語文試題(含答案)
- 《反家庭暴力》課件
- 【物理】《跨學(xué)科實踐:制作簡易桿秤》(教學(xué)設(shè)計)-2024-2025學(xué)年人教版(2024)初中物理八年級下冊
- 新蘇教版一年級數(shù)學(xué)下冊第六單元《簡單的數(shù)量關(guān)系(一)》教案(共2課時)
- 浙江省寧波市九校2024-2025學(xué)年高一上學(xué)期期末聯(lián)考試題 數(shù)學(xué) 含答案
- GA/T 2146-2024法庭科學(xué)涉火案件物證檢驗移動實驗室建設(shè)通用要求
- 北京市石景山區(qū)2024-2025學(xué)年九年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2025年度服務(wù)外包合同:銀行呼叫中心服務(wù)外包協(xié)議3篇
- 2025年新高考語文模擬考試試卷(五) (含答案解析)
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費管理工作指引》專題培訓(xùn)
- 北師大版七年級上冊數(shù)學(xué)思維導(dǎo)圖全套
評論
0/150
提交評論