Java符號與表達式.doc_第1頁
Java符號與表達式.doc_第2頁
Java符號與表達式.doc_第3頁
Java符號與表達式.doc_第4頁
Java符號與表達式.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗2.1 Java符號與表達式1 實驗?zāi)康?(1)熟悉基本數(shù)據(jù)類型及其占用空間大小,熟悉標識符的定義特點;(2)熟悉常見轉(zhuǎn)義字符的含義;(3)掌握不同類型數(shù)據(jù)的賦值轉(zhuǎn)換原則,熟悉自動轉(zhuǎn)換與強制轉(zhuǎn)換的含義;(4)掌握常用運算符的使用。2 知識要點2.1 基本數(shù)據(jù)類型、變量(1)標識符的命名原則:以字母,下劃線(_),美元符($)開始的一個字符序列,后面可以跟字母,下劃線,美元符,數(shù)字。(2)基本數(shù)據(jù)類型(見表2-1)表2-1 基本數(shù)據(jù)類型類型標識含義所占字節(jié)默認值byte字節(jié)型10short短整型20int整型40long長整型80float單精度浮點型40.0Fdouble雙精度浮點型80.0Dchar字符型20boolean布爾型1falsel 八進制表示形式:以0(零)開頭,如:012;l 十六進指表示形式:以0x開頭,如:0xa1;l 整數(shù)默認int型,長整數(shù)可在后面加L;l 實數(shù)默認雙精度型,要明確表示為float型在數(shù)據(jù)后加F。l 布爾型數(shù)據(jù)只有true和false兩個值;l 字符型數(shù)據(jù)是用單引號括起來。2.2 特殊字符轉(zhuǎn)義符Java字符采用Unicode編碼。“ ” (反斜杠)在字符表示或字符串中有特殊作用,它和之后的字符合并解釋,用于表示一些特殊字符。見表2-2。表2-2 常見轉(zhuǎn)義符轉(zhuǎn)義字符描述單引號字符雙引號字符反斜杠r回車n換行f走紙換頁t橫向跳格b退格2.3 自動類型轉(zhuǎn)換與強制類型轉(zhuǎn)換(1) 自動轉(zhuǎn)換次序byte-shortcharintlongfloatdouble 按照箭頭所示方向,處于左邊的數(shù)據(jù)類型的數(shù)據(jù)可以自動轉(zhuǎn)換賦值給右邊的數(shù)據(jù)類型的變量,但反之,將處于右邊的數(shù)據(jù)類型的數(shù)據(jù)賦值給處于左邊的數(shù)據(jù)類型的變量必須經(jīng)過強制轉(zhuǎn)換。(2) 布爾類型不能與其他類型進行轉(zhuǎn)換;(3) 賦值時強制轉(zhuǎn)換可能導(dǎo)致數(shù)據(jù)丟失精度。2.4 輸出語句的使用(1)print()方法與println()的差異是前者輸出后不換行,而后者換行。(2)輸出時可以通過“+”號將任何數(shù)據(jù)與字符串拼接。如果拼接的是基本類型變量,則在其位置輸出變量值,如果是對象,則在其位置輸出對象的toString()方法的返回結(jié)果。2.5 容易用錯的運算符(1)+或-的位置相關(guān)性。不妨假設(shè)原來a值為4,則使用+或-運算符后的結(jié)果如表2-3所示。表2-3 +和運算符的位置相關(guān)性使用形式原來a值運算后a值表達式的值a+454+a455a-434-a433(2)賦值運算(=)與相等比較(=)的差異賦值語句形式:變量名=表達式;功能:計算表達式的結(jié)果,并將結(jié)果給變量賦值,變量的結(jié)果也為賦值表達式的結(jié)果?!?”是關(guān)系運算符,是比較運算符兩邊的數(shù)據(jù)是否相等。表達式的結(jié)果為true或false。(3)求余(%)與除號(/)的使用注意兩個整數(shù)進行除法運算是整除,結(jié)果將不包含小數(shù)部分,而一個是整數(shù)、另一個為實數(shù),則轉(zhuǎn)化為實數(shù)后再計算,結(jié)果為實數(shù)。具體樣例見表2-4。表2-4 求余與除號運算符運算結(jié)果說明7 / 51整除的商7 %52求整除后的余數(shù)7.0 / 5.01.4 實數(shù)除7.0 / 51.4轉(zhuǎn)化為實數(shù)運算7 / 5.01.4轉(zhuǎn)化為實數(shù)運算7.0 % 5.02.0求余數(shù)(4)邏輯與(&)與邏輯或(|)的使用,尤其是副作用。邏輯運算符有可能不必計算運算符兩邊的表達式即可確定結(jié)果,其副作用見表2-5。表2-5 邏輯運算符的附加特點表達式何時結(jié)果為true附加特點op1 & op2op1 和 op2都是trueop1為false時,不計算op2op1 | op2op1 或 op2是trueop1為true時,不計算op2(5)位運算符的使用移位運算符左移1位將數(shù)值增大1,右移則縮小1倍;按位邏輯運算相當于每位的1對應(yīng)true,0對應(yīng)false的邏輯運算,將各位的運算結(jié)果拼接后的數(shù)據(jù)即為結(jié)果。各類位運算符的具體功能見表2-6。表2-6 各類位運算符的功能運算符用法操作op結(jié)果是op按比特位求反Op1 op2將op1右移op2個位(帶符號)Op1 op1 op2將op1右移op2個位(不帶符號的右移)&Op1 & op2op1 和 op2都是1時,相應(yīng)的位才是1|Op1 | op2op1 或 op2是1時,相應(yīng)的位為1Op1 op2op1和op2是不同值時,相應(yīng)的位為1(6)運算符的優(yōu)先級 在一個表達式中運算的優(yōu)先次序由相鄰運算符的優(yōu)先級決定,同一級運算符的運算次序根據(jù)運算符的結(jié)合性決定運算次序。如果是左結(jié)合則按自左向右的次序進行。3 樣例分析樣例1: 調(diào)試分析以下程序的運行結(jié)果: public class test public static void main(String a) int m=0; System.out.println(m+=+m+); System.out.println(+m=+(+m); boolean x; x=(53)&(4=6); System.out.println(x=+x); m=m%2; System.out.println(result=+m+1); int y=m*m+2*m-1; System.out.println(m=+m+,y=+y); 【輸出結(jié)果】m+=0 +m=2 x=false result=01 m=0,y=-1【說明】(1) 注意m+和+m的求值差異;(2)注意輸出語句中與字符串的拼接運算次序。字符串“result”先與m的值拼接,然后再與1拼接。樣例2:已知梯形的上底為3,下底為5,高為2.4,求其面積?!緟⒖汲绦?】 public class Area public static void main(String a) double x=3; / 上底 double y=5; / 下底 double z=2.4; / 高 double s=(x+y)*z/2; /計算面積 System.out.println(面積=+s); 【參考程序2】 public class Area public static void main(String a) double s=(3+5)*2.4/2; /計算面積 System.out.println(面積=+s); 【說明】計算機編程解法可以是多樣的,只要能實現(xiàn)目標即可。但要注意程序的可讀性,對引入的變量通常要加以注釋。4 上機練習(xí) 基本題1) 編程觀察如下輸出語句: System.out.println(hello test escape char);在“escape”處換上各種轉(zhuǎn)義字符測試輸出效果。如何實現(xiàn)如下輸出:Hello test Hello test2) 設(shè)有如下代碼段,考慮賦值轉(zhuǎn)換問題:int a=234;byte b=a;System.out.println(a=+a+,b=+b);將a,b的類型以及數(shù)據(jù)進行各種替換,觀察什么時候能賦值,什么時候需要使用強制轉(zhuǎn)換,什么時候不能強制轉(zhuǎn)換,什么時候強制轉(zhuǎn)換會丟失數(shù)據(jù)。3) 編寫一個程序求半徑R為10的圓的面積。公式為:S=R2注:可用Math類的常量PI表示(即Math.PI)。 提高題1) 設(shè)有一個邊長為30的等邊三角形,三角形內(nèi)有一個內(nèi)切圓,計算除內(nèi)切圓外三角形內(nèi)其它部分的面積。 【提示】先算三角形面積,再計算圓的面積,其差即為結(jié)果。2) 調(diào)試分析以下程序的運行結(jié)果:public class test public static void main(String a) int m=10,n=517; System.out.println(n % m); System.out.println(n / m); System.out.println(m 2);System.out.println(m & n);System.out.println(Integer.toBinaryString(m); System.out.println(Integer.toBinaryString(m 2); 注意:Integer.toBinaryString(int)用于將一個整數(shù)轉(zhuǎn)化為二進制形式的數(shù)字串。在進行位運算時,注意觀察二進制的數(shù)據(jù)變化規(guī)律。5 思考題1)現(xiàn)有一個int類型的整數(shù)和一個double類型的數(shù)進行加法運算,則得到的結(jié)果類型為: Aint類型 B. double類型 C. float類型 D. long類型 2)下面程序段的輸出結(jié)果是: int a = 2; System.out.print( a+); System.out.print( a); System.out.print(+a); A333 B334 C234 D233 3) 以下代碼的輸出結(jié)果?public class Test int x=3; public static void main(String argv) int x= 012; System.out.println(x); A12 B012 C10 D3 4) 下列定義語句正確的是:Achar c=n; Bint i=12; Cfloat f=2.8; Dboolean b=null;5)檢查如下代碼:public class Quiz2_l public static void main(String args) int a = 8; int b = -8; System.out.print(a1) ); 下列哪條語句正確描述了程序在編譯和運行時的行為?A編譯成功,輸出為“32,-4 ”B. 編譯成功,輸出為“16,4 ”C. 編譯成功,輸出為“32,2147483644”D. 編譯成功,輸出為“16,2147483644”E. 編澤器拒絕表達式 b,因為不能對一個負數(shù)應(yīng)用操作符6)以下代碼中變量result的可能類型有哪些? byte b = 11; short s = 13; result = b * +s;Abyte, short, int, long, float, doubleBboolean, byte, short, char, int, long, float, doubleCbyte, short, char, int, long, float, doubleDbyte, short, charEint, long, float, double7)以下代碼的輸出結(jié)果為: System.out.println( +2 + 3); System.out.println(2 + 3); System.out.println(2 + 3 +); System.out.println(2 + +3); A第3行出現(xiàn)編譯錯誤B輸出23, 5, 5 和23.C輸出5, 5, 5 和23.D輸出 23, 5, 23 和23.8)設(shè)有如下變量說明:byte myByte;int myInt;long myLong;char myChar;float myFloat;double myDouble; 以下賦值語句哪個需要強制轉(zhuǎn)換。AmyInt = myByte;BmyInt = myLong;CmyByte = 3;DmyInt = myChar;EmyFloat = myDouble;FmyFloat = 3;GmyDouble = 3.0;9)考慮如下兩語句: 1. boolean passingScore = false & grade = 70; 2. bool

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論