亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chapter3.htm

?? Thinking In Java第二版(中文)
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
<br>
2. 轉型<br>
大家會發現假若對主數據類型執行任何算術或按位運算,只要它們“比int小”(即char,byte或者short),那么在正式執行運算之前,那些值會自動轉換成int。這樣一來,最終生成的值就是int類型。所以只要把一個值賦回較小的類型,就必須使用“造型”。此外,由于是將值賦回給較小的類型,所以可能出現信息丟失的情況)。通常,表達式中最大的數據類型是決定了表達式最終結果大小的那個類型。若將一個float值與一個double值相乘,結果就是double;如將一個int和一個long值相加,則結果為long。<br>
<br>
3.1.14 Java沒有“sizeof”<br>
在C和C++中,sizeof()運算符能滿足我們的一項特殊需要:獲知為數據項目分配的字符數量。在C和C++中,size()最常見的一種應用就是“移植”。不同的數據在不同的機器上可能有不同的大小,所以在進行一些對大小敏感的運算時,程序員必須對那些類型有多大做到心中有數。例如,一臺計算機可用32位來保存整數,而另一臺只用16位保存。顯然,在第一臺機器中,程序可保存更大的值。正如您可能已經想到的那樣,移植是令C和C++程序員頗為頭痛的一個問題。<br>
Java不需要sizeof()運算符來滿足這方面的需要,因為所有數據類型在所有機器的大小都是相同的。我們不必考慮移植問題——Java本身就是一種“與平臺無關”的語言。<br>
<br>
3.1.15 復習計算順序<br>
在我舉辦的一次培訓班中,有人抱怨運算符的優先順序太難記了。一名學生推薦用一句話來幫助記憶:“Ulcer 
Addicts Really Like C A lot”,即“潰瘍患者特別喜歡(維生素)C”。<br>
<br>
助記詞 運算符類型 運算符<br>
<br>
Ulcer(潰瘍) Unary:一元 + - + + - [[ 其余的 ]]<br>
Addicts(患者) Arithmetic(shift);算術(和移位) * / % + - &lt;&lt; &gt;&gt;<br>
Really(特別) Relational:關系 &gt; &lt; &gt;= &lt;= == !=<br>
Like(喜歡) Logical(bitwise):邏輯(和按位) &amp;&amp; || &amp; | ^<br>
C Conditional(ternary):條件(三元) A&gt;B ? X:Y<br>
A Lot Assignment:賦值 =(以及復合賦值,如*=)<br>
<br>
當然,對于移位和按位運算符,上表并不是完美的助記方法;但對于其他運算來說,它確實很管用。<br>
<br>
3.1.16 運算符總結<br>
下面這個例子向大家展示了如何隨同特定的運算符使用主數據類型。從根本上說,它是同一個例子反反復復地執行,只是使用了不同的主數據類型。文件編譯時不會報錯,因為那些會導致錯誤的行已用//!變成了注釋內容。<br>
<br>
120-129頁程序<br>
<br>
注意布爾值(boolean)的能力非常有限。我們只能為其賦予true和false值。而且可測試它為真還是為假,但不可為它們再添加布爾值,或進行其他其他任何類型運算。<br>
在char,byte和short中,我們可看到算術運算符的“轉型”效果。對這些類型的任何一個進行算術運算,都會獲得一個int結果。必須將其明確“造型”回原來的類型(縮小轉換會造成信息的丟失),以便將值賦回那個類型。但對于int值,卻不必進行造型處理,因為所有數據都已經屬于int類型。然而,不要放松警惕,認為一切事情都是安全的。如果對兩個足夠大的int值執行乘法運算,結果值就會溢出。下面這個例子向大家展示了這一點:<br>
<br>
129頁下程序<br>
<br>
輸出結果如下:<br>
big = 2147483647<br>
bigger = -4<br>
<br>
而且不會從編譯器那里收到出錯提示,運行時也不會出現異常反應。爪哇咖啡(Java)確實是很好的東西,但卻沒有“那么”好!<br>
對于char,byte或者short,混合賦值并不需要造型。即使它們執行轉型操作,也會獲得與直接算術運算相同的結果。而在另一方面,將造型略去可使代碼顯得更加簡練。<br>
大家可以看到,除boolean以外,任何一種主類型都可通過造型變為其他主類型。同樣地,當造型成一種較小的類型時,必須留意“縮小轉換”的后果。否則會在造型過程中不知不覺地丟失信息。<br>
<br>
3.2 執行控制<br>
Java使用了C的全部控制語句,所以假期您以前用C或C++編程,其中大多數都應是非常熟悉的。大多數程序化的編程語言都提供了某種形式的控制語句,這在語言間通常是共通的。在Java里,涉及的關鍵字包括if-else、while、do-while、for以及一個名為switch的選擇語句。然而,Java并不支持非常有害的goto(它仍是解決某些特殊問題的權宜之計)。仍然可以進行象goto那樣的跳轉,但比典型的goto要局限多了。<br>
<br>
3.2.1 真和假<br>
所有條件語句都利用條件表達式的真或假來決定執行流程。條件表達式的一個例子是A==B。它用條件運算符“==”來判斷A值是否等于B值。該表達式返回true或false。本章早些時候接觸到的所有關系運算符都可拿來構造一個條件語句。注意Java不允許我們將一個數字作為布爾值使用,即使它在C和C++里是允許的(真是非零,而假是零)。若想在一次布爾測試中使用一個非布爾值——比如在if(a)里,那么首先必須用一個條件表達式將其轉換成一個布爾值,例如if(a!=0)。<br>
<br>
3.2.2 if-else<br>
if-else語句或許是控制程序流程最基本的形式。其中的else是可選的,所以可按下述兩種形式來使用if:<br>
<br>
if(布爾表達式)<br>
語句<br>
<br>
或者<br>
<br>
if(布爾表達式)<br>
語句<br>
else<br>
語句<br>
<br>
條件必須產生一個布爾結果。“語句”要么是用分號結尾的一個簡單語句,要么是一個復合語句——封閉在括號內的一組簡單語句。在本書任何地方,只要提及“語句”這個詞,就有可能包括簡單或復合語句。<br>
作為if-else的一個例子,下面這個test()方法可告訴我們猜測的一個數字位于目標數字之上、之下還是相等:<br>
<br>
131頁程序<br>
<br>
最好將流程控制語句縮進排列,使讀者能方便地看出起點與終點。<br>
<br>
1. return<br>
return關鍵字有兩方面的用途:指定一個方法返回什么值(假設它沒有void返回值),并立即返回那個值。可據此改寫上面的test()方法,使其利用這些特點:<br>
<br>
131-132頁程序<br>
<br>
不必加上else,因為方法在遇到return后便不再繼續。<br>
<br>
3.2.3 反復<br>
while,do-while和for控制著循環,有時將其劃分為“反復語句”。除非用于控制反復的布爾表達式得到“假”的結果,否則語句會重復執行下去。while循環的格式如下:<br>
<br>
while(布爾表達式)<br>
語句<br>
<br>
在循環剛開始時,會計算一次“布爾表達式”的值。而對于后來每一次額外的循環,都會在開始前重新計算一次。<br>
下面這個簡單的例子可產生隨機數,直到符合特定的條件為止:<br>
<br>
132下程序<br>
<br>
它用到了Math庫里的static(靜態)方法random()。該方法的作用是產生0和1之間(包括0,但不包括1)的一個double值。while的條件表達式意思是說:“一直循環下去,直到數字等于或大于0.99”。由于它的隨機性,每運行一次這個程序,都會獲得大小不同的數字列表。<br>
<br>
3.2.4 do-while<br>
do-while的格式如下:<br>
<br>
do<br>
語句<br>
while(布爾表達式)<br>
<br>
while和do-while唯一的區別就是do-while肯定會至少執行一次;也就是說,至少會將其中的語句“過一遍”——即便表達式第一次便計算為false。而在while循環結構中,若條件第一次就為false,那么其中的語句根本不會執行。在實際應用中,while比do-while更常用一些。<br>
<br>
3.2.5 for<br>
for循環在第一次反復之前要進行初始化。隨后,它會進行條件測試,而且在每一次反復的時候,進行某種形式的“步進”(Stepping)。for循環的形式如下:<br>
<br>
for(初始表達式; 布爾表達式; 步進)<br>
語句<br>
<br>
無論初始表達式,布爾表達式,還是步進,都可以置空。每次反復前,都要測試一下布爾表達式。若獲得的結果是false,就會繼續執行緊跟在for語句后面的那行代碼。在每次循環的末尾,會計算一次步進。<br>
for循環通常用于執行“計數”任務:<br>
<br>
133頁下程序<br>
<br>
注意變量c是在需要用到它的時候定義的——在for循環的控制表達式內部,而非在由起始花括號標記的代碼塊的最開頭。c的作用域是由for控制的表達式。<br>
以于象C這樣傳統的程序化語言,要求所有變量都在一個塊的開頭定義。所以在編譯器創建一個塊的時候,它可以為那些變量分配空間。而在Java和C++中,則可在整個塊的范圍內分散變量聲明,在真正需要的地方才加以定義。這樣便可形成更自然的編碼風格,也更易理解。<br>
可在for語句里定義多個變量,但它們必須具有同樣的類型:<br>
<br>
134頁上程序<br>
<br>
其中,for語句內的int定義同時覆蓋了i和j。只有for循環才具備在控制表達式里定義變量的能力。對于其他任何條件或循環語句,都不可采用這種方法。<br>
<br>
1. 逗號運算符<br>
早在第1章,我們已提到了逗號運算符——注意不是逗號分隔符;后者用于分隔函數的不同自變量。Java里唯一用到逗號運算符的地方就是for循環的控制表達式。在控制表達式的初始化和步進控制部分,我們可使用一系列由逗號分隔的語句。而且那些語句均會獨立執行。前面的例子已運用了這種能力,下面則是另一個例子:<br>
<br>
134頁下程序<br>
<br>
輸出如下:<br>
<br>
135頁上程序<br>
<br>
大家可以看到,無論在初始化還是在步進部分,語句都是順序執行的。此外,盡管初始化部分可設置任意數量的定義,但都屬于同一類型。<br>
<br>
3.2.6 中斷和繼續<br>
在任何循環語句的主體部分,亦可用break和continue控制循環的流程。其中,break用于強行退出循環,不執行循環中剩余的語句。而continue則停止執行當前的反復,然后退回循環起始和,開始新的反復。<br>
下面這個程序向大家展示了break和continue在for和while循環中的例子:<br>
<br>
135頁下程序<br>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆精品久久一二三| 91麻豆精品国产综合久久久久久| 色天天综合久久久久综合片| 日韩一二三区不卡| 一区二区在线观看不卡| 韩国精品在线观看| 欧美日韩美少妇 | 欧美性色aⅴ视频一区日韩精品| 欧美成人性福生活免费看| 亚洲在线观看免费视频| 国产成人av电影在线播放| 日韩欧美电影一区| 无码av免费一区二区三区试看| 99精品欧美一区二区三区综合在线| 精品久久久久久久久久久久包黑料| 亚洲最色的网站| 99国产精品久| 欧美国产成人在线| 国产精品一区二区x88av| 日韩你懂的电影在线观看| 亚洲福利视频一区二区| 在线看国产日韩| 中文字幕日韩精品一区| 国产成人免费av在线| 精品国产青草久久久久福利| 欧美aaaaaa午夜精品| 宅男噜噜噜66一区二区66| 亚洲二区在线观看| 欧美日韩在线三区| 午夜欧美在线一二页| 91国产精品成人| 亚洲美女视频一区| 91精品1区2区| 亚洲在线观看免费| 欧美日韩黄视频| 樱花草国产18久久久久| 一本大道av伊人久久综合| 亚洲欧美日韩国产一区二区三区 | 久久精品理论片| 日韩一级精品视频在线观看| 男女男精品视频| 日韩一区二区免费在线电影| 五月天欧美精品| 91精品国产麻豆国产自产在线 | www.日韩av| 亚洲视频一二三区| 欧美亚洲丝袜传媒另类| 亚洲在线观看免费视频| 欧美乱妇15p| 韩国一区二区三区| 国产精品毛片无遮挡高清| 91福利国产精品| 青青草97国产精品免费观看无弹窗版| 精品剧情在线观看| 99久久99久久综合| 日韩黄色免费网站| 久久精品欧美一区二区三区不卡| 丰满白嫩尤物一区二区| 亚洲五月六月丁香激情| 日韩一区二区三区av| 成人免费av在线| 亚洲国产一区二区在线播放| 制服丝袜在线91| 国产精品亚洲一区二区三区在线| 亚洲天堂2014| 日韩精品一区二区三区视频播放| 国产成人av自拍| 亚洲午夜电影在线| 久久久99免费| 在线观看视频一区| 国产一区二区视频在线播放| 亚洲精品老司机| 日韩欧美www| 在线免费观看不卡av| 国产成人综合视频| 首页国产欧美久久| 国产精品进线69影院| 欧美tickle裸体挠脚心vk| 色天使色偷偷av一区二区| 国产一区二区视频在线| 亚洲图片有声小说| 国产日产欧美一区二区三区| 91精品婷婷国产综合久久性色| 成年人国产精品| 韩日欧美一区二区三区| 午夜精品久久久久久久久久久| 国产精品日产欧美久久久久| 欧美r级在线观看| 精品视频1区2区3区| 成人av影视在线观看| 极品少妇xxxx精品少妇| 一区二区三区在线视频免费观看| 久久久久9999亚洲精品| 欧美成人猛片aaaaaaa| 欧美剧在线免费观看网站| 色综合久久中文字幕综合网| 成人午夜在线视频| 国产精品一级在线| 免费高清视频精品| 亚洲成人一区在线| 亚洲国产另类av| 一区二区免费在线播放| 中文字幕一区免费在线观看| 国产午夜精品理论片a级大结局 | 欧美亚洲图片小说| 色综合久久久久| 色综合久久99| 色综合av在线| 欧美影视一区在线| 精品视频一区二区不卡| 欧美日韩一区二区在线视频| 色女孩综合影院| 在线中文字幕不卡| 色综合av在线| 欧美午夜免费电影| 欧美日韩小视频| 91精品婷婷国产综合久久| 91麻豆精品国产91久久久| 欧美一卡在线观看| 日韩三级视频中文字幕| 精品国精品国产尤物美女| wwwwxxxxx欧美| 国产欧美日韩精品在线| 综合激情成人伊人| 亚洲综合色视频| 天天操天天色综合| 日本中文字幕一区二区有限公司| 蜜臀久久99精品久久久久宅男| 捆绑调教一区二区三区| 国产精品一区二区在线播放| 粉嫩aⅴ一区二区三区四区| 成人激情校园春色| 欧美伊人精品成人久久综合97 | 天堂午夜影视日韩欧美一区二区| 天天色综合成人网| 国产又粗又猛又爽又黄91精品| 国产91对白在线观看九色| 91亚洲精华国产精华精华液| 欧美午夜电影在线播放| 日韩欧美国产综合| 国产精品美女www爽爽爽| 亚洲成人自拍一区| 国产精品一区免费视频| 色综合久久综合中文综合网| 日韩一区二区三区四区| 国产精品每日更新| 视频精品一区二区| 高清不卡在线观看av| 91国产成人在线| 精品久久久网站| 一区二区三区高清不卡| 精品在线免费视频| 色偷偷一区二区三区| 日韩欧美一级二级| 亚洲视频资源在线| 精品亚洲porn| 欧美性猛交xxxx乱大交退制版| 亚洲精品一区二区三区影院 | 国产精品免费网站在线观看| 亚洲不卡av一区二区三区| 国产精品一区二区x88av| 欧美日韩你懂得| 国产精品青草久久| 麻豆91精品视频| 一本色道**综合亚洲精品蜜桃冫| 精品欧美一区二区久久| 亚洲在线观看免费| jizz一区二区| 久久精品视频一区二区三区| 日日骚欧美日韩| 91在线观看成人| 久久久国产午夜精品| 蜜乳av一区二区| 欧美日韩一级二级三级| 中文字幕一区二区三区乱码在线| 理论电影国产精品| 91香蕉视频mp4| 久久精品综合网| 久久精品99久久久| 欧美日韩视频专区在线播放| 中文字幕一区二区三区在线播放| 狠狠v欧美v日韩v亚洲ⅴ| 91精品国产综合久久久蜜臀粉嫩 | 自拍av一区二区三区| 国产一区二区精品在线观看| 欧美精品777| 亚洲午夜影视影院在线观看| 成人黄色小视频在线观看| 亚洲精品一区二区三区福利 | 久久精品一区二区三区四区| 青青草原综合久久大伊人精品优势| 欧美三级日韩三级| 亚洲精品va在线观看| 91麻豆精品视频| 亚洲欧洲国产日韩| 91麻豆免费看| 亚洲一区二区三区免费视频| 欧美视频精品在线| 午夜视频一区二区三区| 欧美肥妇bbw|