第二章 Java程序設(shè)計(jì)基礎(chǔ)

本章教學(xué)內(nèi)容:

2.1 標(biāo)識(shí)符和關(guān)鍵字

????在各種計(jì)算機(jī)編程語(yǔ)言中,每種語(yǔ)言都使用一些特定的字符來(lái)構(gòu)造基本詞法單位腾降,進(jìn)而描述程序語(yǔ)句碌奉。Java語(yǔ)言中主要詞法單位有五種:標(biāo)識(shí)符啥么、關(guān)鍵字往枷、分隔符罐寨、運(yùn)算符会傲、注釋。

2.1.1 標(biāo)識(shí)符

?????標(biāo)識(shí)符是程序員在編程中定義的詞法單位疙剑,它的作用是用來(lái)為程序中要處理的各種變量戒突、常量屯碴、方法、對(duì)象以及類等命名膊存,以后就可以通過(guò)名字來(lái)訪問或修改某個(gè)數(shù)據(jù)的值导而。

?????標(biāo)識(shí)符的構(gòu)成:在Java語(yǔ)言中忱叭,標(biāo)識(shí)符是由字母今艺、下劃線(_)、美元符($)開頭的字母虚缎、下劃線(_)、美元符和數(shù)字組成的字符序列

????Java語(yǔ)言中標(biāo)識(shí)符的命名必須滿足以下六個(gè)原則:

?????標(biāo)識(shí)符必須以字母实牡、下劃線(_)或美元符($)開頭,后面可以跟字母创坞、數(shù)字、下劃線或美元符题涨;

?????標(biāo)識(shí)符可以包含數(shù)字,但不能以數(shù)字開頭纲堵;

?????除下劃線“_”和美元符“$”符號(hào)外,標(biāo)識(shí)符中不能包含任何特殊字符婉支,如空格鸯隅;

?????標(biāo)識(shí)符中的字母區(qū)分大小寫,比如向挖,“abc”和“Abc”是兩個(gè)不同的標(biāo)識(shí)符蝌以;

?????對(duì)于標(biāo)識(shí)符的長(zhǎng)度沒有限制;

?????不能使用Java關(guān)鍵字作為標(biāo)識(shí)符何之。

2.1.2 關(guān)鍵字

????Java語(yǔ)言中有一些已經(jīng)被賦予特殊含義的跟畅、由系統(tǒng)定義的單詞,這些單詞被稱為關(guān)鍵字或保留字溶推。關(guān)鍵字不能作為標(biāo)識(shí)符使用

JAVA語(yǔ)言的主要關(guān)鍵字

主要關(guān)鍵字

2.1.3 Java語(yǔ)言的分隔符

?Java語(yǔ)言的分隔符的作用:

?????????用來(lái)分割和組合標(biāo)識(shí)符徊件,用來(lái)幫助Java編譯器正確閱讀和理解Java源程序。

?Java中的分隔符分為以下兩類:

(1)沒有特定意義蒜危,只起分割標(biāo)識(shí)符作用的空白符虱痕。包括空格、回車辐赞、換行和制表符(Tab)部翘。

(2)擁有確定含義的普通分隔符

Java語(yǔ)言的分隔符

分隔符

2.2 常量和變量

2.2.1 常量

????在程序運(yùn)行過(guò)程中一直不會(huì)改變的量稱為常量。常量在整個(gè)程序中只能被賦值一次响委。在Java語(yǔ)言中聲明一個(gè)常量新思,除了要指定數(shù)據(jù)類型外窖梁,還需要通過(guò)final關(guān)鍵字進(jìn)行限定。

????聲明常量的一般格式如下:

????????final??數(shù)據(jù)類型??常量名=值

2.2.2 變量

????變量是在程序執(zhí)行過(guò)程中其值可以改變的量夹囚,是Java程序中最基本的存儲(chǔ)單元纵刘。變量須用標(biāo)識(shí)符進(jìn)行標(biāo)識(shí),該標(biāo)識(shí)符稱為變量名荸哟。程序編譯時(shí)假哎,會(huì)根據(jù)變量類型為每一個(gè)變量分配一段連續(xù)的內(nèi)存單元,用于存儲(chǔ)該變量的取值敲茄。

1.變量的聲明

變量聲明的一般格式為:

???????????? 數(shù)據(jù)類型? 變量名1[=值] [位谋,變量名2[=值]…];

???????????其中堰燎,方括號(hào)表示可選部分掏父,其含義是在定義變量時(shí)可以設(shè)置變量的初始值,如果在同一語(yǔ)句中要聲明多個(gè)變量秆剪,則變量間用逗號(hào)隔開赊淑。

變量的聲明和使用規(guī)則:

(1)變量的聲明必須遵從標(biāo)識(shí)符的命名規(guī)則。

(2)所有變量都可大小寫混用仅讽,但首字符應(yīng)小寫。

(3)盡量不要使用下劃線和$符號(hào)饱岸。

(4)可以先聲明再賦值苫费,如:

 int i;

 i=9;

 也可以聲明的同時(shí)進(jìn)行賦值:

 int i=9;?//聲明一個(gè)類型為 int的變量i双抽,并將它賦值為 9。

(5)沒有賦值的變量是不可以使用的牍汹。如:

 int i;

 System.out.println(i);?//這句代碼是錯(cuò)誤的慎菲。

(6)在同一作用域內(nèi)變量不能重復(fù)定義。

2.變量的作用域

????Java允許變量在任何程序塊內(nèi)被聲明棠众。程序塊被包括在一對(duì)大括號(hào)中闸拿。一個(gè)程序塊定義了一個(gè)作用域(scope )新荤,一個(gè)作用域決定了其中所定義變量的可見性和生存期台汇。

提示:

????Java不允許在兩個(gè)嵌套的語(yǔ)句塊內(nèi)聲明兩個(gè)完全同名的變量苟呐。

2.3 數(shù)據(jù)類型

????在程序設(shè)計(jì)中要使用和處理各種數(shù)據(jù)牵素,數(shù)據(jù)按照其表示信息的含義和占用空間的大小來(lái)區(qū)分為不同的數(shù)據(jù)類型。Java是一門強(qiáng)類型語(yǔ)言请琳,即所有的變量都必須顯式聲明其類型俄精。

????Java語(yǔ)言的數(shù)據(jù)類型可以分為基本數(shù)據(jù)類型引用數(shù)據(jù)類型兩大類榕堰。

2.3.1 基本數(shù)據(jù)類型

八大基本數(shù)據(jù)類型

1.整型數(shù)據(jù)類型

????不含小數(shù)點(diǎn)的數(shù)字為整數(shù)類型竖慧。例如:-124圾旨、948碳胳、0等沫勿。

????整數(shù)類型包含以下四種:byte、short诫惭、int夕土、long。?

(1)整型字面常量

????整型數(shù)據(jù)可以表示為10進(jìn)制角溃、8進(jìn)制减细、16進(jìn)制赢笨。

????10進(jìn)制:如123、-34萧吠;

????8進(jìn)制:

????如0123

????16進(jìn)制:如0x64

????整型默認(rèn)為int型纸型,若是長(zhǎng)整型需要在數(shù)據(jù)后加上字母L绊袋。例如:123為int型铸鹰,而123L則是long型。

(2)整型變量

????使用關(guān)鍵字int展姐、byte圾笨、short逊谋、long來(lái)定義整型變量胶滋,定義時(shí)也可以賦給初值究恤。

????例如:

????int???x=123;

????long?? y=123L;

????long?? z=123l;

????byte?? luckyNumber=7;

????short smallNumber=1234;

2.浮點(diǎn)數(shù)據(jù)類型

含小數(shù)點(diǎn)的數(shù)字為浮點(diǎn)類型。例如:-38.32抄腔、34.0等赫蛇。

浮點(diǎn)類型包含以下兩種:float棍掐、double作煌。

(1)浮點(diǎn)型字面常量

浮點(diǎn)型數(shù)據(jù)有兩種表示形式:

小數(shù)形式:如1.23,-3.45,1.0

科學(xué)計(jì)數(shù)法形式:如1.23456E+3赚瘦、12345E-4,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。

實(shí)型默認(rèn)為double型鹰服,數(shù)字后加f或F為float型悲酷,加d或D為double型亲善。

(2)浮點(diǎn)型變量

使用關(guān)鍵字float 蛹头、double 來(lái)定義浮點(diǎn)型變量,定義時(shí)也可以賦給初值屠尊。

例如:

double x=1.496E8;

float y=9E-28F;

double z=0.123;

float w=0.123F;

3.布爾數(shù)據(jù)類型

(1)布爾型字面常量

只有兩個(gè)值:true和false

(2)布爾型變量

使用關(guān)鍵字boolean來(lái)定義布爾型變量讼昆,定義時(shí)也可以賦給初值骚烧。

例如:boolean? state=true;或 ?boolean state;state=true;

4.字符數(shù)據(jù)類型

(1)字符型字面常量

????字符型字面常量是由一對(duì)單引號(hào)括起來(lái)的單個(gè)字符或以反斜線(\)開頭的轉(zhuǎn)義符止潘。在Java中凭戴,一個(gè)字符代表一個(gè)16位無(wú)符號(hào)的Unicode字符,每個(gè)字符占2個(gè)字節(jié)者冤。

例如:'A'涉枫、'b'、'?' 困后、'!'摇予、'9'侧戴、'好'酗宋。

(2)字符型變量

使用關(guān)鍵字char來(lái)定義字符變量蜕猫,用于存儲(chǔ)一個(gè)字符丹锹,定義時(shí)也可以賦給初值芬失。

如:char myChar='A'棱烂;

(3)字符集

ASCII(American Standard Code for Information Interchange) 字符集:使用7位代碼表示大小寫字母、數(shù)字0~9以及若干控制字符哩治,如換行符业筏。

ISO-8859-1 Latin-1字符集:在西歐蒜胖,用戶希望字符集能夠表示他們本國(guó)字符集的所有字符,ASCII字符集因而被擴(kuò)展到8位寻狂,即增加了128個(gè)字符蛇券,用于表示英文中不存在的各種西歐語(yǔ)言的字符纠亚。

Unicode字符集:是ISO標(biāo)準(zhǔn)16位字符集菜枷,支持65536個(gè)不同的字符。其中大約有21000個(gè)字符專門用于中文拥娄、日文和韓文的表意文字稚瘾。

ASCII摊欠、ISO Latin-1都是Unicode的子集些椒。

(4)轉(zhuǎn)義字符

????除了上述形式的字符常量值之外,Java還允許對(duì)一些難以用一般字符來(lái)表示的字符使用一種特殊形式的字符常量值來(lái)表示掸刊,這種特殊的字符稱為轉(zhuǎn)義字符免糕。轉(zhuǎn)義字符是以一個(gè)“\”開頭的字符序列。表2-4列出了Java中常用的轉(zhuǎn)義字符及其含義忧侧。

常用的轉(zhuǎn)義字符

2.3.2 引用數(shù)據(jù)類型


五種引用類型


2.3.3 基本數(shù)據(jù)類型轉(zhuǎn)換

????在Java中石窑,數(shù)據(jù)的類型如果是相容的,那么一種數(shù)據(jù)類型就可以轉(zhuǎn)換成另外一種數(shù)據(jù)類型蚓炬。數(shù)據(jù)類型轉(zhuǎn)換的方式有“自動(dòng)類型轉(zhuǎn)換”和“強(qiáng)制類型轉(zhuǎn)換”兩種松逊。

1.自動(dòng)類型轉(zhuǎn)換

????????????將一種類型的變量賦給另一種類型的變量時(shí),如果兩種類型兼容并且目標(biāo)類型大于源類型肯夏,就會(huì)發(fā)生自動(dòng)類型轉(zhuǎn)換经宏。自動(dòng)類型轉(zhuǎn)換會(huì)“隱含”發(fā)生。這些基本類型按精度從“低”到“高”的順序排列如下:(擴(kuò)大是隱含的)

?? byte??short?? int?? long???float???? double

2.強(qiáng)制類型轉(zhuǎn)換

表示范圍大的數(shù)據(jù)類型要轉(zhuǎn)換成表示范圍小的數(shù)據(jù)類型,需要用到強(qiáng)制類型轉(zhuǎn)換。

強(qiáng)制類型轉(zhuǎn)換的格式為:(類型名)要轉(zhuǎn)換的表達(dá)式;

例如:

int x=(int)23.89;

long y=(long)34.98F;

如果輸出x,y的值將是23和34轨域。?

2.4 運(yùn)算符和表達(dá)式

????Java提供了豐富的運(yùn)算符,按照運(yùn)算符操作數(shù)的數(shù)目劃分,可以將運(yùn)算符分為單目運(yùn)算符必峰、雙目運(yùn)算符和三目運(yùn)算符问欠。

????按照運(yùn)算符的功能劃分,可以將運(yùn)算符分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符借浊、邏輯運(yùn)算符槐沼、位運(yùn)算符肖油、賦值運(yùn)算符和條件運(yùn)算符县袱。

2.4.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式

算術(shù)運(yùn)算符

2.4.2 關(guān)系運(yùn)算符和關(guān)系表達(dá)式

關(guān)系運(yùn)算符

2.4.3 邏輯運(yùn)算符和邏輯表達(dá)式

邏輯運(yùn)算符

????邏輯運(yùn)算具有短路特性。所謂短路揍移,就是當(dāng)參與運(yùn)算的第一個(gè)操作數(shù)已經(jīng)足以推斷出這個(gè)表達(dá)式的值的時(shí)候石蔗,另外一個(gè)操作數(shù)就不會(huì)被執(zhí)行日熬。

例如:

int i=5;

boolean j=false&&(++i>5);

System.out.println(i);

這時(shí)輸出結(jié)果為5而不是6憎亚。

2.4.4 條件運(yùn)算符和條件表達(dá)式

????條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3

????其中表達(dá)式1的值為布爾類型陆爽,若表達(dá)式1的值為真贡必,則返回表達(dá)式2的值利花,否則返回表達(dá)式3的值挠乳。

提示:

????條件表達(dá)式結(jié)果的類型為表達(dá)式2和表達(dá)式3中精度較高的類型卖怜。例如:表達(dá)式3>2?4:5.0的結(jié)果為4.0甩鳄。

2.4.5 賦值運(yùn)算符和賦值表達(dá)式?

????賦值運(yùn)算符為一個(gè)單獨(dú)的“=”彬祖,它將其右側(cè)表達(dá)式的值賦給左側(cè)的變量。

復(fù)合賦值運(yùn)算符

2.4.6 位運(yùn)算符和位運(yùn)算表達(dá)式

????位運(yùn)算是指按二進(jìn)制位進(jìn)行的運(yùn)算焊虏。因?yàn)樵谙到y(tǒng)軟件中,常要處理二進(jìn)制位的問題晤郑。例如:將一個(gè)存儲(chǔ)單元中的各二進(jìn)制位左移或右移一位线脚,兩個(gè)數(shù)按位相加等括丁。Java語(yǔ)言提供了位運(yùn)算的功能,位運(yùn)算的操作數(shù)和結(jié)果都是整型。?

位運(yùn)算符

1. “按位與”運(yùn)算符(&)

????按位與是指參加運(yùn)算的兩個(gè)整數(shù)迹淌,按二進(jìn)制位進(jìn)行“與”運(yùn)算唉窃。如果兩個(gè)相應(yīng)的二進(jìn)制位都為1矮嫉,則該位的結(jié)果值為1昨寞;否則為0添瓷。

????即:0&0=0,0&1=0眷蚓,1&0=0鼻种,1&1=1。

????“按位與”運(yùn)算的用途:

????(1) 清零沙热。

????(2) 取一個(gè)數(shù)中某些指定位叉钥。

2.“按位或“運(yùn)算符(|)

????按位或是指參加運(yùn)算的兩個(gè)整數(shù),按二進(jìn)制位進(jìn)行“或”運(yùn)算篙贸。如果兩個(gè)相應(yīng)的二進(jìn)制位中有一個(gè)為1投队,該位的結(jié)果值為1,否則為0爵川。

????即 0|0=0敷鸦,0|1=1,1|0=1寝贡,1|1=1

????“按位或”運(yùn)算的用途:

????(1)按位或運(yùn)算常用來(lái)對(duì)一個(gè)數(shù)據(jù)的某些位定值為1扒披。

????例如:如果想使一個(gè)數(shù)a的低4位改為1,只需將a與017進(jìn)行按位或運(yùn)算即可圃泡。

????(2)和“按位與”運(yùn)算一起組合新數(shù)碟案。

????例如:將整數(shù)a的低16位和整數(shù)b的高16位取出組合成整數(shù)c。則c=(a&0x00ff)|(b&0xff00)颇蜡。

3.“按位異或”運(yùn)算符(^)

????異或運(yùn)算也稱XOR運(yùn)算价说。它的規(guī)則是:若參加運(yùn)算的兩個(gè)二進(jìn)制位相同則結(jié)果為0,否則為1风秤。

????即:0^0=0鳖目,0^1=1,1^0=1缤弦, 1^1=0

????例如:071^052=023 (八進(jìn)制數(shù))

????異或運(yùn)算的用途:

????(1) 使特定位翻轉(zhuǎn)领迈。

????設(shè)有01111010,想使其低4位翻轉(zhuǎn)碍沐,即1變?yōu)椋暗敕眩白優(yōu)椋薄抢韭?梢詫⑺c00001111進(jìn)行^運(yùn)算。

????(2) 與0相異或恍箭,保留原值刻恭。

????例如:012^00=012

????(3) 交換兩個(gè)值,不用臨時(shí)變量。

????例如:a=3鳍贾,b=3鞍匾。

????想將a和b的值互換,可以用以下賦值語(yǔ)句實(shí)現(xiàn):

????a=a^b;b=b^a;a=a^b;

4. “按位取反”運(yùn)算符(~)

????~是一個(gè)單目(元)運(yùn)算符骑科,用來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位取反橡淑,即將0變1,將1變0咆爽。例如:~025是對(duì)八進(jìn)制數(shù)25(即二進(jìn)制數(shù)00010101)按位求反梁棠。

5.“按位左移”運(yùn)算符(<<)

????左移運(yùn)算符用來(lái)將一個(gè)數(shù)的各二進(jìn)制位全部左移若干位。左移后高位溢出舍棄斗埂,低位補(bǔ)0符糊。

????例如:a<<2?? 將a的二進(jìn)制數(shù)左移2位,右邊的空位補(bǔ)0呛凶。

????若a=15男娄,即二進(jìn)制數(shù)00001111,a左移2位得00111100(十進(jìn)制數(shù)60)

????左移1位相當(dāng)于該數(shù)乘以2漾稀,左移2位相當(dāng)于該數(shù)乘以22,15<<2=60模闲,即乘4……依此類推,左移n位相當(dāng)于該數(shù)乘以2n崭捍。但此結(jié)論只適用于該數(shù)左移時(shí)被溢出舍棄的高位中不包含1的情況尸折。

6.“按位右移”運(yùn)算符(>>)

????右移運(yùn)算符用來(lái)將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位。右移后空出的高位補(bǔ)符號(hào)位缕贡,低位舍棄翁授。

????例如:a>>2表示將a的各二進(jìn)制位右移2位,移到右端的低位被舍棄晾咪,對(duì)空出的高位而言收擦,如果a為正數(shù),則補(bǔ)0谍倦,如果a為負(fù)數(shù)塞赂,則補(bǔ)1。

????右移一位相當(dāng)于除以2昼蛀,右移n位相當(dāng)于除以2n宴猾。但此結(jié)論只適用于該數(shù)右移時(shí)被舍棄的低位中不包含1的情況。

7.“無(wú)符號(hào)右移”運(yùn)算符(>>>)

????無(wú)符號(hào)右移運(yùn)算符用來(lái)將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位叼旋。右移后空出的高位補(bǔ)0仇哆,低位舍棄。

2.4.7 其他運(yùn)算符?

其他運(yùn)算符


2.4.8 運(yùn)算符優(yōu)先級(jí)和結(jié)合性

????Java語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性夫植。

? ? 1.運(yùn)算符優(yōu)先級(jí)是指同一表達(dá)式中多個(gè)運(yùn)算符被執(zhí)行的先后次序讹剔,即運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式中運(yùn)算執(zhí)行的先后順序油讯。

? ? 2.運(yùn)算符的結(jié)合性決定了相同級(jí)別的運(yùn)算符的先后執(zhí)行順序。左結(jié)合性是指同一優(yōu)先級(jí)的運(yùn)算從左到右順序執(zhí)行延欠;右結(jié)合性是指指同一優(yōu)先級(jí)的運(yùn)算從右到左順序執(zhí)行陌兑。例如,加減的結(jié)合性是從左到右由捎,8-5+3相當(dāng)于(8-5)+3兔综。邏輯否運(yùn)算符“!”的結(jié)合性是右到左狞玛,H沓邸!x 相當(dāng)于!(!x)为居。

? ? 3.在表達(dá)式求值時(shí)碌宴,按照優(yōu)先級(jí)的順序由高到低依次執(zhí)行。同一優(yōu)先級(jí)的按照結(jié)合性執(zhí)行蒙畴。

優(yōu)先級(jí)

2.5 基本類型數(shù)據(jù)的輸入和輸出

2.5.1 從命令行輸入輸出數(shù)據(jù)

1.向控制臺(tái)輸出數(shù)據(jù)

????標(biāo)準(zhǔn)輸出流(System.out)中為我們提供了三種向控制臺(tái)輸出數(shù)據(jù)的方法

????(1)print(輸出項(xiàng)):實(shí)現(xiàn)不換行的數(shù)據(jù)輸出贰镣。輸出項(xiàng)可以是變量名、常量膳凝、表達(dá)式碑隆。

????(2)println(輸出項(xiàng)):數(shù)據(jù)輸出后換行。輸出項(xiàng)可以是變量名蹬音、常量上煤、表達(dá)式。

????(3)printf("格式控制部分"著淆,表達(dá)式1劫狠,表達(dá)式2,…表達(dá)式n):帶格式描述的數(shù)據(jù)輸出永部。格式控制部分由格式控制符和普通字符組成独泞,普通字符原樣輸出;常用的格式控制符有%d(代表十進(jìn)制數(shù))苔埋、%c(代表一個(gè)字符)懦砂、%f(代表浮點(diǎn)數(shù))、%e(代表科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù))组橄、%s(代表字符串)荞膘、%n(代表?yè)Q行符)。

2.從控制臺(tái)輸入數(shù)據(jù)

????(1)使用Scanner類實(shí)現(xiàn)數(shù)據(jù)的輸入

????使用Java語(yǔ)言提供的java.util.Scanner類中的方法可以實(shí)現(xiàn)從控制臺(tái)輸入數(shù)據(jù)玉工。使用步驟如下:

????第一步:在程序開頭添加一行導(dǎo)入包語(yǔ)句:

????import java.util; //Scanner類定義在java.util包中羽资。

????第二步:構(gòu)造Scanner類對(duì)象

????Scanner in=new Scanner(System.in);

????第三步:使用Scanner類的各種方法實(shí)現(xiàn)輸入操作,

????next()系列方法有:

????nextInt():輸入整數(shù)

????nextLine():輸入字符串

????nextDouble():輸入雙精度數(shù)

? ? next() :輸入字符串(以空格作為分隔符)

????(2)使用數(shù)據(jù)輸入流實(shí)現(xiàn)數(shù)據(jù)的輸入

????有關(guān)數(shù)據(jù)輸入流的相關(guān)知識(shí)請(qǐng)參見第9章遵班。這里只簡(jiǎn)單的用一個(gè)例子介紹利用字符輸入流輸入字符串的過(guò)程削罩。

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class IoDemo{

??public static void main(String[]args){

?String s="";

System.out.println("請(qǐng)輸入一個(gè)字符串:");

?????try{?????????????????????????????????//使用異常處理語(yǔ)句

BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

????????s=in.readLine();

??????}catch(IOExceptione){}

??????System.out.println("你輸入的字符串是:"+s);

}}

2.5.2. 使用Swing對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)的輸入輸出

1.使用Swing對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)的輸出

????使用javax.swing.JOptionPane包中的showMessageDialog()方法將彈出消息顯示對(duì)話框瞄勾,可以用該對(duì)話框顯示輸出結(jié)果。該方法的具體用法請(qǐng)參見第11章弥激。這里只簡(jiǎn)單的用一個(gè)例子介紹利用showMessageDialog()方法輸出數(shù)據(jù)的過(guò)程。

例子

2. 使用Swing對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)的輸入

????使用javax.swing.JOptionPane包的showInputDialog()方法從輸入對(duì)話框中獲得字符串愿阐。該方法的具體用法請(qǐng)參見第11章微服。這里只簡(jiǎn)單的用一個(gè)例子介紹利用方法showInputDialog()輸入字符串的過(guò)程。

例子

2.6 程序流程控制語(yǔ)句

Java的控制語(yǔ)句分為以下三類:選擇缨历、循環(huán)和跳轉(zhuǎn)以蕴。

2.6.1 選擇結(jié)構(gòu)語(yǔ)句

????選擇結(jié)構(gòu)又稱分支結(jié)構(gòu),是根據(jù)判斷條件的成立與否決定要執(zhí)行哪些語(yǔ)句的一種程序結(jié)構(gòu)辛孵,它的作用是讓程序更具有選擇性丛肮。

Java語(yǔ)言中提供了兩種選擇語(yǔ)句:if語(yǔ)句和switch語(yǔ)句。

1.if 語(yǔ)句

if語(yǔ)句是最常用的選擇結(jié)構(gòu)魄缚,其語(yǔ)法格式如下:

if(條件表達(dá)式)

? 語(yǔ)句1

[else語(yǔ)句2]

格式說(shuō)明:

(1)條件表達(dá)式是布爾表達(dá)式宝与,結(jié)果為true或false;

(2)語(yǔ)句1和語(yǔ)句2可以是單獨(dú)一個(gè)語(yǔ)句冶匹,也可以是一個(gè)語(yǔ)句塊习劫。當(dāng)條件為true時(shí)執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2嚼隘。

(3)else部分可以省略诽里。

2.if語(yǔ)句的嵌套

????所謂if語(yǔ)句的嵌套是指if語(yǔ)句中的語(yǔ)句1或語(yǔ)句2又是if語(yǔ)句的情況。當(dāng)判斷條件比較復(fù)雜飞蛹,在一個(gè)布爾表達(dá)式中不能完全表示時(shí)谤狡,可以采用嵌套的if語(yǔ)句來(lái)實(shí)現(xiàn)。if語(yǔ)句的嵌套結(jié)構(gòu)較多卧檐,其中最常用的嵌套結(jié)構(gòu)為“if-else if”格式墓懂。

if-else if嵌套結(jié)構(gòu)的語(yǔ)法格式如下:

if(判斷條件1)

?語(yǔ)句1;

else if(判斷條件2)

?? 語(yǔ)句2;

else

?語(yǔ)句n+1:

}

3.switch語(yǔ)句

switch語(yǔ)句是多分支的開關(guān)語(yǔ)句,它基于一個(gè)表達(dá)式的值來(lái)執(zhí)行多個(gè)分支語(yǔ)句中的一個(gè)語(yǔ)句泄隔。

switch語(yǔ)句語(yǔ)法格式如下:

switch(表達(dá)式){

??case常量表達(dá)式1:語(yǔ)句1拒贱;break;

??case常量表達(dá)式2:語(yǔ)句2;break;

??…

??case常量表達(dá)式n:語(yǔ)句n佛嬉;break;

??[default:語(yǔ)句n+1逻澳;]

}

說(shuō)明:

(1)switch語(yǔ)句執(zhí)行時(shí)首先計(jì)算表達(dá)式的值。表達(dá)式的類型必須是以下5種類型之一:int暖呕、byte斜做、char、short湾揽、long瓤逼。同時(shí)還要保證與case分支判斷值的類型一致笼吟。

(2)case子句只是作為執(zhí)行語(yǔ)句的入口。switch語(yǔ)句把表達(dá)式返回的值依次與每個(gè)case子句中的常量值相比較霸旗,如果遇到匹配的值贷帮,則從該入口進(jìn)入switch語(yǔ)句,執(zhí)行該case后面的語(yǔ)句塊诱告,如果都不符合則執(zhí)行default后的語(yǔ)句撵枢。如果case子句后沒有break語(yǔ)句,則流程會(huì)一直向下執(zhí)行精居,直到遇到break語(yǔ)句或到switch語(yǔ)句的尾端才結(jié)束switch語(yǔ)句的執(zhí)行锄禽。

(3)default子句是可選的。

(4)break語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后靴姿,使程序跳出switch語(yǔ)句沃但,即終止switch語(yǔ)句的執(zhí)行。

(5)case后面的常量值必須互不相同佛吓。

(6)多個(gè)不同的case值要執(zhí)行一組相同的操作時(shí)宵晚,可以共用一組語(yǔ)句。

2.6.2 循環(huán)結(jié)構(gòu)語(yǔ)句

????在程序設(shè)計(jì)中辈毯,有時(shí)需要反復(fù)執(zhí)行一段相同的代碼坝疼,直到滿足終止循環(huán)的條件為止。為了簡(jiǎn)化程序結(jié)構(gòu)谆沃,Java語(yǔ)言也像c/c++語(yǔ)言一樣提供了循環(huán)結(jié)構(gòu)钝凶。其中反復(fù)被執(zhí)行的語(yǔ)句稱為循環(huán)體。在Java語(yǔ)言中有三種常用的循環(huán)語(yǔ)句唁影,分別是while語(yǔ)句耕陷、do…while語(yǔ)句和for語(yǔ)句。

一個(gè)循環(huán)結(jié)構(gòu)一般要包含四個(gè)因素:

(1)初始化部分:用來(lái)設(shè)置循環(huán)控制的一些初始條件据沈。

(2)判斷部分:循環(huán)的控制條件哟沫,是一個(gè)布爾表達(dá)式,用來(lái)判斷循環(huán)要不要繼續(xù)執(zhí)行锌介。

(3)循環(huán)體部分:被循環(huán)控制反復(fù)執(zhí)行的代碼嗜诀。

(4)迭代部分:用來(lái)修改循環(huán)的控制條件,以使循環(huán)趨向于終止孔祸。

1.while語(yǔ)句

while語(yǔ)句是一種先判斷條件隆敢,然后根據(jù)條件決定是否執(zhí)行循環(huán)體的循環(huán)語(yǔ)句。

while語(yǔ)句的語(yǔ)法格式如下:

while(循環(huán)條件){

?? 循環(huán)體

}

關(guān)于while語(yǔ)句的三點(diǎn)說(shuō)明:

(1)循環(huán)體如果包含一個(gè)以上的語(yǔ)句崔慧,應(yīng)該用花括弧括起來(lái)拂蝎,以語(yǔ)句塊的形式出現(xiàn)。

(2)在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句惶室,即循環(huán)要素中的迭代部分温自。

(3)如果條件一開始就為false,則循環(huán)體一次都不執(zhí)行玄货。

2.do…while語(yǔ)句

????do…while語(yǔ)句用于循環(huán)體至少執(zhí)行一次的情形。它和while語(yǔ)句類似悼泌,區(qū)別是while語(yǔ)句為先判斷條件是否滿足再執(zhí)行循環(huán)體松捉,而do…while語(yǔ)句則先執(zhí)行循環(huán)體一次后,再判斷條件是否滿足馆里。因此do…while語(yǔ)句中的循環(huán)體至少被執(zhí)行一次惩坑,而while語(yǔ)句的循環(huán)體可能一次都不執(zhí)行。

do…while語(yǔ)句語(yǔ)法格式如下:

do{

循環(huán)體

}while(條件);

3.for循環(huán)語(yǔ)句

????for語(yǔ)句使用最為靈活也拜,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況趾痘,它完全可以代替while語(yǔ)句慢哈。

for循環(huán)語(yǔ)句的語(yǔ)法格式如下:

for(表達(dá)式1;表達(dá)式2永票;表達(dá)式3){

循環(huán)體

}

其中:

表達(dá)式1:初始化表達(dá)式卵贱,負(fù)責(zé)對(duì)控制變量賦初值。

表達(dá)式2:判斷條件表達(dá)式侣集,值為布爾型的表達(dá)式键俱,指定循環(huán)條件。

表達(dá)式3:循環(huán)控制變量修改表達(dá)式世分,負(fù)責(zé)修改循環(huán)控制變量编振,改變循環(huán)條件。

關(guān)于for語(yǔ)句的幾點(diǎn)說(shuō)明:

(1)for語(yǔ)句的一般形式中的表達(dá)式1臭埋、表達(dá)式2踪央、表達(dá)式3都可以省略,但是分號(hào)不能省略瓢阴。

(2)表達(dá)式2必須是關(guān)系表達(dá)式(如i<=100)或邏輯表達(dá)式(如a<b&& x<y)

(3)表達(dá)式1可以是設(shè)置循環(huán)變量初值的賦值表達(dá)式畅蹂,也可以是與循環(huán)變量無(wú)關(guān)的其他表達(dá)式。如:for (sum=0;i<=100;i++)? sum=sum+i;

(4)表達(dá)式3也可以是與循環(huán)控制無(wú)關(guān)的任意表達(dá)式荣恐。

(5)表達(dá)式1和表達(dá)式3可以使用用逗號(hào)分割的語(yǔ)句序列來(lái)進(jìn)行多個(gè)操作液斜。

如:for(i=1,sum=0;i<=100;sum+=i,i++);? 但是這種用逗號(hào)分割的語(yǔ)句序列只適用于for循環(huán)

提示: 利用for循環(huán)編程時(shí),for的三個(gè)表達(dá)式最好都與循環(huán)控制有關(guān)叠穆。

4.循環(huán)的嵌套

????一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套少漆。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)痹束。三種循環(huán)(while循環(huán)检疫、do-while循環(huán)和for循環(huán))可以互相嵌套。

2.6.3 流程跳轉(zhuǎn)語(yǔ)句

????Java中有三種跳轉(zhuǎn)語(yǔ)句祷嘶,分別是:break語(yǔ)句屎媳、continue語(yǔ)句夺溢、return語(yǔ)句。

1.break語(yǔ)句

????在前面所學(xué)的switch語(yǔ)句中烛谊,break語(yǔ)句已經(jīng)得到了應(yīng)用风响。在Java提供的各類循環(huán)中,break語(yǔ)句也提供了一種方便的結(jié)束循環(huán)的方法丹禀。

(1)break;? //用來(lái)終止當(dāng)前循環(huán)

(2)break 標(biāo)號(hào)状勤;//結(jié)束標(biāo)號(hào)所指的代碼塊,程序流程從內(nèi)層循環(huán)或內(nèi)層程序塊中退出,執(zhí)行代碼塊后面的語(yǔ)句双泪。

2.continue語(yǔ)句?

????continue語(yǔ)句只能用在循環(huán)語(yǔ)句中持搜,用于結(jié)束本次循環(huán)或指定的標(biāo)號(hào)循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句焙矛,然后進(jìn)入循環(huán)的起始處進(jìn)行終止條件判斷葫盼,以決定是否繼續(xù)循環(huán)。

Continue語(yǔ)句有以下兩種形式:

(1)continue;//終止當(dāng)前循環(huán)村斟,

(2)continue 標(biāo)號(hào)贫导;//直接跳轉(zhuǎn)到標(biāo)號(hào)指明的外層循環(huán)中

3.return語(yǔ)句?

????return語(yǔ)句通常用在一個(gè)方法的最后,其作用是將程序流程從當(dāng)前方法(被調(diào)方法)中返回到主調(diào)方法中蟆盹。return語(yǔ)句有如下兩種使用形式:

(1)return表達(dá)式孩灯;

(2)return;

????當(dāng)含有return語(yǔ)句的方法被調(diào)用時(shí),執(zhí)行return語(yǔ)句將從當(dāng)前方法中退出逾滥,返回到調(diào)用該方法的語(yǔ)句處峰档。如果執(zhí)行的return語(yǔ)句后帶有表達(dá)式,將同時(shí)返回表達(dá)式的結(jié)果匣距;如果執(zhí)行的是第二種形式的return語(yǔ)句面哥,則不返回任何值。

2.7 數(shù)組

????數(shù)組是由一組相同類型的數(shù)據(jù)按一定順序排列的集合毅待。

????數(shù)組的主要特點(diǎn)如下:

?????(1)數(shù)組中的所有元素都具有相同的數(shù)據(jù)類型尚卫。

?????(2)組中的各元素是有先后順序的,它們?cè)趦?nèi)存中按照這個(gè)先后順序連續(xù)存放在一起尸红。

?????(3)每個(gè)數(shù)組元素使用數(shù)組名和它在數(shù)組中的順序位置來(lái)表示吱涉。如a[0]表示名字為a的數(shù)組中的第一個(gè)元素,a[1]表示數(shù)組a中的第二個(gè)元素外里。

2.7.1? 一維數(shù)組

????一維數(shù)組是最簡(jiǎn)單的數(shù)組怎爵,其邏輯結(jié)構(gòu)是線性表。

????使用一維數(shù)組的一般過(guò)程是:一維數(shù)組的聲明盅蝗、創(chuàng)建和引用鳖链。

????1.一維數(shù)組的聲明

????聲明數(shù)組要定義數(shù)組的名稱、維數(shù)和數(shù)組元素的類型。聲明一維數(shù)組的格式有如下兩種形式:

????(1)數(shù)組類型??? 數(shù)組名[]芙委;

????(2)數(shù)組類型[]??? 數(shù)組名逞敷;

????例如: int? score[];或int[] score;????????? //聲明一個(gè)一維數(shù)組,數(shù)組名為score灌侣,元素類型為int型推捐。

????說(shuō)明:

????(1)數(shù)組類型可以是任意的Java類型,包括基本類型和引用類型侧啼;

????(2)數(shù)組名必須是合法的標(biāo)識(shí)符牛柒;

????(3)[]中不能有內(nèi)容。

????2.一維數(shù)組的創(chuàng)建

????創(chuàng)建數(shù)組的方式有如下兩種:

????(1)用運(yùn)算符new創(chuàng)建數(shù)組

????格式如下:數(shù)組名=new 數(shù)組類型[長(zhǎng)度]痊乾;

????例如:score = new int[3] 或int n=3;score = new int[n]皮壁;??

????聲明數(shù)組與創(chuàng)建數(shù)組兩個(gè)步驟可以一起完成,兩步合并如下:int??score[] = new int[3]哪审;

數(shù)組score的存儲(chǔ)分配

????(2)用靜態(tài)的初始化方法創(chuàng)建數(shù)組

????在定義數(shù)組的同時(shí)對(duì)數(shù)組元素分配空間并賦值闪彼,這種賦值方法,稱為對(duì)數(shù)組的靜態(tài)內(nèi)存分配方式协饲,也稱為對(duì)數(shù)組的靜態(tài)初始化。

????其格式如下:

????數(shù)據(jù)類型[] 數(shù)組名 ={初值1缴川,初值12茉稠,…,初值n}把夸;或數(shù)據(jù)類型[] 數(shù)組名 =new數(shù)據(jù)類型[]{初值1而线,初值12,…恋日,初值n}膀篮;

????例如:int?score[] ={7,6,5}; 或 int?score[] =new int []{7,6,5}岂膳;?

????3. length的使用

????對(duì)于創(chuàng)建好的數(shù)組誓竿,其元素個(gè)數(shù)稱為數(shù)組的長(zhǎng)度。對(duì)于一維數(shù)組岳颇,“數(shù)組名. length”的值就是數(shù)組的長(zhǎng)度喊崖。

????例如:score.length就表示數(shù)組score的長(zhǎng)度律杠。

????4.一維數(shù)組元素的引用

????數(shù)組元素的引用方式:

????數(shù)組名[下標(biāo)];

????例如:score[0]代表第1個(gè)元素毙死,score[1]代表第2個(gè)元素,score[n]代表第n+1個(gè)元素喻鳄。

????其中“下標(biāo)”可以是整型常量或表達(dá)式扼倘。例如int i=2; score[i-1]=5;

????Java數(shù)組元素的下標(biāo)從“0”開始,到“長(zhǎng)度-1”結(jié)束除呵。引用數(shù)組的元素時(shí)下標(biāo)不能超出范圍再菊,否則會(huì)產(chǎn)生“數(shù)組訪問越界異匙Υ”

2.7.2 多維數(shù)組

????Java中袄简,多維數(shù)組被看作是數(shù)組的數(shù)組腥放,因此,多維數(shù)組的聲明和創(chuàng)建是通過(guò)對(duì)一維數(shù)組的嵌套來(lái)實(shí)現(xiàn)的绿语。即數(shù)組的元素又是數(shù)組的形式秃症。多維數(shù)組中最常用的是二維數(shù)組,下面以二維數(shù)組為例介紹多維數(shù)組的使用吕粹。

????1.二維數(shù)組的聲明

????數(shù)組元素類型? 數(shù)組名[][]; 或?? 數(shù)組元素類型[][]? 數(shù)組名;

????例如:int?a[][]; 或 double [][]b;

????2.二維數(shù)組的創(chuàng)建

????對(duì)于多維數(shù)組种柑,有兩種為數(shù)組分配內(nèi)存的方式:

????(1)直接為每一維分配內(nèi)存空間。

????格式如下:數(shù)組名= new 數(shù)據(jù)類型[行數(shù)][列數(shù)]匹耕;???

????例如:? a=new int[2][5]; //創(chuàng)建了一個(gè)包括兩行五列的二維數(shù)組a聚请。

????(2)從最高維開始,分別為每一維分配內(nèi)存空間稳其。

????例如:a= new int[2][]; //創(chuàng)建了一個(gè)包括兩行的二維數(shù)組a驶赏。

? ? ? ? ? ? ? a[0] =new int[3]; //二維數(shù)組a的第一行的長(zhǎng)度為3。

? ? ? ? ? ? ? a[1] =new int[5]; //二維數(shù)組a的第二行的長(zhǎng)度為5既鞠。

?????注意:Java語(yǔ)言中煤傍,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的嘱蛋,所以不要求每一維的大小都相同蚯姆。

????3.二維數(shù)組的初始化

????其格式如下:

????數(shù)據(jù)類型? 數(shù)組名 [][]= {{第1行的初值},{第2行的初值}洒敏,…{第n行的初值}};

????舉例說(shuō)明:int a[][] ={ {5,6,7,8,9},{1,2,3} };

????上例中聲明了一個(gè)整型數(shù)組a龄恋,數(shù)組有2行,第一行有5個(gè)元素凶伙,第二行有3個(gè)元素郭毕。

????在二維數(shù)組中,想要獲取整個(gè)數(shù)組的行數(shù)函荣,則可以使用“數(shù)組名.length”來(lái)獲取铣卡。要想獲取某行元素的個(gè)數(shù),則可以使用“數(shù)組名[下標(biāo)].length”來(lái)獲取偏竟。

????4.二維數(shù)組元素的引用

????引用方式:數(shù)組名[行下標(biāo)][列下標(biāo)]煮落;

????例如:a[0][0]代表第1行第1列的元素,a[1][2]代表第2行第3列的元素踊谋。

????其中“行下標(biāo)”和“列下標(biāo)”可以是整型常量或表達(dá)式蝉仇,并且都是從“0”開始,到“長(zhǎng)度-1”結(jié)束。引用二維數(shù)組的元素時(shí)下標(biāo)不能超出范圍轿衔,否則會(huì)產(chǎn)生“數(shù)組訪問越界異吵良#”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末害驹,一起剝皮案震驚了整個(gè)濱河市鞭呕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宛官,老刑警劉巖葫松,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異底洗,居然都是意外死亡腋么,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門亥揖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)珊擂,“玉大人,你說(shuō)我怎么就攤上這事费变〈萆龋” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵挚歧,是天一觀的道長(zhǎng)扳剿。 經(jīng)常有香客問我,道長(zhǎng)昼激,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任锡搜,我火速辦了婚禮橙困,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耕餐。我一直安慰自己凡傅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布肠缔。 她就那樣靜靜地躺著夏跷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪明未。 梳的紋絲不亂的頭發(fā)上槽华,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音趟妥,去河邊找鬼猫态。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亲雪。 我是一名探鬼主播勇凭,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼义辕!你這毒婦竟也來(lái)了虾标?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灌砖,失蹤者是張志新(化名)和其女友劉穎璧函,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體周崭,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柳譬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了续镇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片美澳。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖摸航,靈堂內(nèi)的尸體忽然破棺而出制跟,到底是詐尸還是另有隱情,我是刑警寧澤酱虎,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布雨膨,位于F島的核電站,受9級(jí)特大地震影響读串,放射性物質(zhì)發(fā)生泄漏聊记。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一恢暖、第九天 我趴在偏房一處隱蔽的房頂上張望排监。 院中可真熱鬧,春花似錦杰捂、人聲如沸舆床。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)挨队。三九已至,卻和暖如春蒿往,著一層夾襖步出監(jiān)牢的瞬間盛垦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工瓤漏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留情臭,地道東北人省撑。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像俯在,于是被迫代替她去往敵國(guó)和親竟秫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容