freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java程序設(shè)計(jì)語言基礎(chǔ)(編輯修改稿)

2025-02-08 18:33 本頁面
 

【文章內(nèi)容簡介】 → ↙ 數(shù)據(jù)類型間的轉(zhuǎn)換 ? 強(qiáng)制轉(zhuǎn)換 : 目的數(shù)據(jù)類型的取值范圍比來源數(shù)據(jù)類型的取值范圍要小。如當(dāng)需要將 int型的值賦給一個(gè) byte型的變量時(shí)該怎么辦? 當(dāng)把一個(gè)浮點(diǎn)值賦給整數(shù)類型時(shí) , 將發(fā)生一種不同的類型轉(zhuǎn)換: 截?cái)?。 大家都知道整數(shù)沒有小數(shù)部分 。 這樣 , 當(dāng)把浮點(diǎn)值賦給整數(shù)類型時(shí) , 它的小數(shù)部分將會被舍去 。 例如 , 如果將值 一個(gè)整數(shù) , 其結(jié)果只是 1, 。 當(dāng)然 ,如果浮點(diǎn)值太大而不能適合目標(biāo)整數(shù)類型 , 那么它的值將會因?yàn)閷δ繕?biāo)類型值域取模而減少 。 慎用強(qiáng)制類型轉(zhuǎn)換 。 表達(dá)式中類型的自動提升 ? 除了賦值方式,類型變換還可以在表達(dá)式中進(jìn)行。在表達(dá)式中,對中間值的精確要求有時(shí)超過任何一個(gè)操作數(shù)的范圍。例如,考察下面的表達(dá)式。 byte a = 40。 byte b = 50。 byte c = 100。 int d = a * b / c。 ? 中間項(xiàng)結(jié)果 a*b很容易超過它的任何一個(gè) byte型操作數(shù)的范圍。為處理這種問題,當(dāng)分析表達(dá)式時(shí), Java自動提升各個(gè) byte型或 short型的操作數(shù)到 int型。這意味著子表達(dá)式 a*b使用整數(shù)而不是字節(jié)型來執(zhí)行。這樣,盡管變量 a和 b都被指定為 byte型, 50*40中間表達(dá)式的結(jié)果 2022是合法的。 表達(dá)式中類型的自動提升 ? 自動類型提升有好處,但它也會引起令人疑惑的編譯錯(cuò)誤。例如,下面這個(gè)看起來正確的程序卻會引起一些問題。 byte b = 50。 b = b * 2。 // Error! Cannot assign an int to a byte! 該程序試圖將一個(gè)完全合法的 byte型的值 50*2再存儲給一個(gè) byte型的變量。但是,當(dāng)表達(dá)式求值的時(shí)候,操作數(shù)被自動地提升為 int型,計(jì)算結(jié)果也被提升為 int型。這樣,表達(dá)式的結(jié)果現(xiàn)在是 int型,不強(qiáng)制轉(zhuǎn)換它就不能被賦為 byte型。 在理解了上述溢出后果的情況下,就知道應(yīng)該使用一個(gè)顯式的強(qiáng)制類型轉(zhuǎn)換。 byte b = 50。 b = (byte)(b * 2)。 這樣將產(chǎn)生正確的結(jié)果 100。 關(guān)于類型提升的若干約定 除了將 byte型和 shorts型提升到 int型以外 ,Java語言還規(guī)定了若干適用于表達(dá)式的類型提升規(guī)則 。 首先 , 如前面所描述的 , 所有的 byte型和 short型的值被提升到 int型 。其次 , 如果一個(gè)操作數(shù)是 long型 , 整個(gè)表達(dá)式將被提升到 long型;如果一個(gè)操作數(shù)是 float型 , 整個(gè)表達(dá)式將被提升到 float型;如果有一個(gè)操作數(shù)是 double型 , 計(jì)算結(jié)果就是 double型 。 例子 例如,下面的程序顯示了在表達(dá)式中的每個(gè)值是如何被提升的,以匹配各自雙目運(yùn)算符的第二個(gè)參數(shù)。 class Promote { public static void main(String args[]) { byte b = 42。 char c = 39。a39。 short s = 1024。 int i = 50000。 float f = 。 double d = .1234。 double result = (f * b) + (i / c) (d * s)。 ((f * b) + + + (i / c) + + (d * s))。 (result = + result)。 } } 賦值語句 前面在講變量的定義時(shí)我們已經(jīng)多次使用了賦值語句 ,它的一般格式如下 = 數(shù)值 。 = 用來賦值的變量 。 = 表達(dá)式 。 = 稱為賦值運(yùn)算符 float f = 。 float alf = f。 String s = “Hello” + “ Java”。 賦值語句 更多的賦值語句 除了前面用到的 算術(shù)表達(dá)式 以外 ,還有 邏輯表達(dá)式 boolean b = 34 amp。amp。 12。 在這個(gè)賦值語句里 ,最終 b的值是什么呢 ? 答案: false 運(yùn)算符 ?在 Java語言中,運(yùn)算符可以劃分為四大類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、位運(yùn)算符以及邏輯運(yùn)算符。此外還定義了一些附加運(yùn)算符,用于某些特殊情況的處理。 算術(shù)運(yùn)算符 運(yùn)算符 用法 描述 雙目運(yùn)算符 + Op1+op2 加 Op1op2 減 * Op1*op2 乘 / Op1/op2 除 % op1%op2 取模(求余) 單目運(yùn)算符 + +op 正值 ++ ++op, op++ 加 1 op 負(fù)值 op, op 減 1 算術(shù)運(yùn)算符 ? i++與 ++i的區(qū)別: ? i++在使用 i之后,使 i的值加 1,因此執(zhí)行完i++后,整個(gè)表達(dá)式的值為 i,而 i的值變?yōu)閕+1。 ? ++i在使用 i之前,使 i的值加 1,因此執(zhí)行完++i后,整個(gè)表達(dá)式和 i的值均為 i+1。 ? 如: a=2。b=a++。運(yùn)行后: a=3。b=2。 ? a=2。b=++a。運(yùn)行后: a=3。b=3。 ? i與 i的區(qū)別(與上面類似) 算術(shù)運(yùn)算符 ? “ +”除字符串相加功能外,還能把非字符串轉(zhuǎn)換成字符串 ,如: “ x”+123。的結(jié)果是“ x123” 。 ?x?+123的結(jié)果是什么呢? ? 如果對負(fù)數(shù)取模,可以把模數(shù)負(fù)號忽略不記,如:5%2=1。但被模數(shù)是負(fù)數(shù)就另當(dāng)別論了。 ? 對于除號“ /”,它的整數(shù)除和小數(shù)除是有區(qū)別的:整數(shù)之間做除法時(shí),只保留整數(shù)部分而舍棄小數(shù)部分。 int x=3510。x=x/1000*1000。實(shí)際運(yùn)行結(jié)果是 3000 ,想想為什么? 算術(shù)運(yùn)算符使用技巧 ? 思考題 1:某個(gè)培訓(xùn)中心要為新到的學(xué)員安排房間,假設(shè)共有 x個(gè)學(xué)員,每個(gè)房間可以住 6人,讓你用一個(gè)公式來計(jì)算他們要住的房間數(shù)? 答案 : (x+5)/6。這種算法還可用在查看留言板的分頁顯示上: 其中 x是總共的留言數(shù), 6是每頁顯示的留言數(shù),結(jié)果就是總共有多少頁。 ? 思考題 2:假設(shè)你要讓 x的值在 0至 9之間循環(huán)變化,請寫出相應(yīng)的程序代碼。 答案 : int x=0。 while(true) { x = (x+1)%10。 } ? 加運(yùn)算符可以用來連接兩個(gè)字符串 例如, ? abc”+123的運(yùn)行結(jié)果是字符串 abc123 ? abc”+(1+2)的運(yùn)行結(jié)果是什么? abc3 ? 兩個(gè)整數(shù)相除的結(jié)果取其整數(shù)部分 例如, 3/2的結(jié)果是 1,而不是 1/2的結(jié)果是 0 8/15*15的結(jié)果是多少? 0 算術(shù)運(yùn)算符的使用 ? Java語言既可以對整數(shù)取模,也可以對小數(shù)取模 如: 20%7=6, %5= ? 可以對 char類型的數(shù)據(jù)進(jìn)行運(yùn)算,因?yàn)槠淇梢宰詣愚D(zhuǎn)換為整型或浮點(diǎn)型 如: ’ a’/3=32; ’ a’%5=2 算術(shù)運(yùn)算符的使用 ? 單目運(yùn)算符 ? 正值 (+),負(fù)值 () 如: +5, 5 ? 加 1(++),減 1() 運(yùn)算符的操作數(shù)必須是變量,不能是常量或帶有運(yùn)算符的表達(dá)式,可以把運(yùn)算符放在操作數(shù)的前面或后面 如: ++a和 a++ a和 a 算術(shù)運(yùn)算符的使用 說明: ? ++a先對 a增 1,然后用增 1后的值進(jìn)行計(jì)算 ? a++先用 a的值參加計(jì)算,然后對 a增 1 例 : int a=5,b=8,c,d。 c=(a++)*b。 //c=40,a=6 d=(++a)*b //d=48,a=6 算術(shù)運(yùn)算符的使用 同樣 : ? a先對 a減 1,然后用減 1后的值進(jìn)行計(jì)算 ? a先用 a的值參加計(jì)算,然后對 a減 1 例 : int a=5,b=8,c,d。 c=(a)*b。 //c=40 ,a=4 d=(a)*b //d=32 ,a=4 算術(shù)運(yùn)算符的使用 賦值運(yùn)算符 注 1:在 JAVA里可以把賦值語句連在一起,如: x = y = z = 5 。 在這個(gè)語句中,所有三個(gè)變量都得到同樣的值 5。 注 2 : x += 3等效于 x = x + 3,等于 *= , =, /=依此類推。 關(guān)系運(yùn)算符 注 1:比較運(yùn)算符的結(jié)果都是 boolean型,也就是要么是 true,要么是 false。 注 2:比較運(yùn)算符 “ = =”不能誤寫成 “ =” ,切記!切記! 5 邏輯運(yùn)算符 注 1:邏輯運(yùn)算符用于對 boolean型結(jié)果的表達(dá)式進(jìn)行運(yùn)算,運(yùn)算的結(jié)果都是 boolean型 。 注 2:“ amp?!焙汀?amp。amp?!钡膮^(qū)別 在于,如果使用前者連接,那么無論任何情況,“ amp?!眱蛇叺谋磉_(dá)式都會參與計(jì)算。如果使用后者連接,當(dāng)“ amp。amp?!钡淖筮厼?false,則將不會計(jì)算其右邊的表達(dá)式?!?|”和“ ||”的區(qū)別與“ amp?!焙汀?amp。amp?!钡膮^(qū)別類似。 “ amp?!焙汀?amp。amp?!钡膮^(qū)別分析 public class TestAnd { public static void main(String[] args) { int x=0。 int y=3。 if(x!=0 amp。amp。 y==y/x) (y = +y)。 } } 上面例子中,由于 while語句的判斷條件中的第一個(gè)布爾表達(dá)式是不成 立的,程序就不會判斷第二個(gè)布爾表達(dá)式的值,這就是“短路”。如 果兩 個(gè)表達(dá)式之間用“ amp?!眮磉B接,如果正好碰到上面所示的特殊情況,程序 運(yùn)行時(shí)就會出錯(cuò) 邏輯運(yùn)算符 ? a,b,c三條邊能否組成三角形的條件 a+bcamp。amp。a+cbamp。amp。b+ca ? 判斷 year是否是閏年的條件 1)能被 4整除,但不能被 100整除; 2)能被 4整除,又能被 400整除。 (year%4==0amp。amp。year%100!=0) ||(year%400==0) 三目條件運(yùn)算符 ? : 條件運(yùn)算符 也稱三目運(yùn)算符 ,其格式為: Expression? statement1 : statement2; 它的作用是根據(jù)第一個(gè)運(yùn)算符 (放在 ? 前面 ,必須為布爾類型數(shù)據(jù) )的真假值 , 來決定整個(gè)表達(dá)式的結(jié)果值是第二個(gè)運(yùn)算量 (放在 ? 后面 :前面 )或者是第三個(gè)運(yùn)算量 (放在:后面 )。 如 : int x,y=10,z=43。 x=yz?y:z。 運(yùn)行后 x=43. 即當(dāng) yz時(shí) , x=y。否則 x=z. 運(yùn)算符的優(yōu)先級 可以使用括號改變運(yùn)算賦的優(yōu)先級,分析 int a =2。int b = a + 3*a。語句的執(zhí)行過程 與 int a =2。int b =( a + 3) *a。語句的執(zhí)行過程的區(qū)別 。 運(yùn)算符 優(yōu)先級 結(jié)合性 [] . 從高到低 左
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1