第3章-運(yùn)算符、表達(dá)式和語(yǔ)句_第1頁(yè)
第3章-運(yùn)算符、表達(dá)式和語(yǔ)句_第2頁(yè)
第3章-運(yùn)算符、表達(dá)式和語(yǔ)句_第3頁(yè)
第3章-運(yùn)算符、表達(dá)式和語(yǔ)句_第4頁(yè)
第3章-運(yùn)算符、表達(dá)式和語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章運(yùn)算符、表達(dá)式和語(yǔ)句

3.1運(yùn)算符與表達(dá)式3.2語(yǔ)句概述3.3if語(yǔ)句3.4switch語(yǔ)句3.5循環(huán)語(yǔ)句3.6break和continue語(yǔ)句3.7for語(yǔ)句與數(shù)組3.1運(yùn)算符與表達(dá)式Java提供了豐富的運(yùn)算符,如算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等。本節(jié)將介紹大部分運(yùn)算符。1.算術(shù)運(yùn)算符與表達(dá)式

加減運(yùn)算符:+,-,加減運(yùn)算符的結(jié)合方向是從左到右。加減運(yùn)算符的優(yōu)先級(jí)是4級(jí)。乘,除和求余運(yùn)算符:*,/,%,運(yùn)算符的結(jié)合方向是從左到右。乘除運(yùn)算符的操作元是整型或浮點(diǎn)型數(shù)據(jù)。*,/,%(取余)運(yùn)算符的優(yōu)先級(jí)是3級(jí)。用算術(shù)符號(hào)和括號(hào)連接起來(lái)的符合java語(yǔ)法規(guī)則的式子,稱(chēng)為算術(shù)表達(dá)式,如:x+2*y-30+3*(y+5)。2.自增,自減運(yùn)算符:++,--

自增、自減運(yùn)算符是單目運(yùn)算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個(gè)整型或浮點(diǎn)型變量。作用是使變量的值增1或減1.++x(--x)表示在使用x之前,先使x的值加(減)1。x++(x--)表示在使用x之后,使x的值加(減)1。下一次粗略的看,++x和x++的作用相當(dāng)于

x=x+1。但++x和x++的不同之處在于,++x是先執(zhí)行

x=x+1再使用x的值,而x++是先使用x的值再執(zhí)行x=x+1。如果x的原值是5,則:對(duì)于y=++x y的值為6,x的值也變?yōu)?。y的值為5,然后x的值變?yōu)?。對(duì)于y=x++ 3.算術(shù)混合運(yùn)算的精度

精度從“低”到“高”排列的順序是:

byteshortintlongfloatdoubleJava將按運(yùn)算符兩邊的操作元的最高精度保留結(jié)果的精度。例如:

5/2的結(jié)果是2,要想得到2.5,必須寫(xiě)成5.0/2或5.0f/2。char型數(shù)據(jù)和整型數(shù)據(jù)運(yùn)算結(jié)果的精度是int。例如:bytex=7;

那么‘B’+x;的結(jié)果應(yīng)該是int因此下列寫(xiě)法是不正確的,

charch=’B’+x;

應(yīng)當(dāng)寫(xiě)成:charch=(char)(’B’+x);

Java在計(jì)算算術(shù)表達(dá)式的值時(shí),使用下列計(jì)算精度規(guī)則:1.如果表達(dá)式中有雙精度浮點(diǎn)數(shù)(double型數(shù)據(jù)),則按雙精度進(jìn)行運(yùn)算。2.如果表達(dá)式中最高精度是單精度浮點(diǎn)數(shù)(float型數(shù)據(jù)),則按單精度進(jìn)行運(yùn)算。3.如果表達(dá)式中最高精度是long型整數(shù),則按long精度進(jìn)行運(yùn)算。4.如果表達(dá)式中最高精度低于int型整數(shù),則按int精度進(jìn)行運(yùn)算。精度從“低”到“高”排列的順序是:

byteshortintlongfloatdouble4.關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符:<,>,<=,>=,!=,==關(guān)系運(yùn)算符用來(lái)比較兩個(gè)值的關(guān)系。關(guān)系運(yùn)算符的運(yùn)算結(jié)果是boolean型,當(dāng)運(yùn)算符對(duì)應(yīng)的關(guān)系成立時(shí),運(yùn)算結(jié)果是true,否則是false。例如,10<9的結(jié)果是false,5>1的結(jié)果是true,注意:因?yàn)樗阈g(shù)運(yùn)算符的級(jí)別高于關(guān)系運(yùn)算符,10>20-17相當(dāng)于10>(20-17),結(jié)果當(dāng)然是true。

3!=5的結(jié)果是10>20-17的結(jié)果為truetrue結(jié)果為數(shù)值型的變量或表達(dá)式可以通過(guò)關(guān)系運(yùn)算符(如表3.1所示)形成關(guān)系表達(dá)式。如,4>8,(x+y)>80。p35運(yùn)算符優(yōu)先級(jí)用法含義結(jié)合方向>6op1>op2大于左到右<6op1<op2小于左到右>=6op1>=op2大于等于左到右<=6op1<=op2小于等于左到右==7op1==op2等于左到右!=7op1!=op2不等于左到右

表3.1 關(guān)系運(yùn)算符5.邏輯運(yùn)算符與邏輯表達(dá)式

邏輯運(yùn)算符包括:&&,||,!。表

3.2邏輯運(yùn)算符運(yùn)算符優(yōu)先級(jí)用法含義結(jié)合方向&&||!11122op1&&op2op1||op2!op邏輯與邏輯或

邏輯非左到右

左到右

右到左其中&&、||為雙目運(yùn)算符,實(shí)現(xiàn)邏輯與、邏輯或;!為單目運(yùn)算符,實(shí)現(xiàn)邏輯非。邏輯運(yùn)算符的操作元必須是boolean型數(shù)據(jù),邏輯運(yùn)算符可以用來(lái)連接關(guān)系表達(dá)式。結(jié)果為boolean

型的變量或表達(dá)式可以通過(guò)邏輯運(yùn)算符合成為邏輯表達(dá)式。op1op2op1&&op2op1||op2!

op1truetruetruetruefalsetruefalsefalsetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue用邏輯運(yùn)算符進(jìn)行邏輯運(yùn)算,結(jié)果如表3.3所示。p23

表3.3 用邏輯運(yùn)算符進(jìn)行邏輯運(yùn)算例如,2>8&&9>2的結(jié)果為false,2>8||9>2的結(jié)果為true。3!=521<25&&短路邏輯運(yùn)算符6.賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符:=賦值運(yùn)算符是雙目運(yùn)算符,左面的操作元必須是變量,不能是常量或表達(dá)式。賦值運(yùn)算符的優(yōu)先級(jí)較低,是14級(jí),結(jié)合方向右到左。賦值表達(dá)式的值就是“=”左面變量的值。注意:不要將賦值運(yùn)算符“=”與等號(hào)運(yùn)算符“==”混淆。設(shè)x是一個(gè)整型變量,y是一個(gè)boolean型變量,x=20

和y=true都是正確的賦值表達(dá)式,整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制的形式表示,比如一個(gè)int

型的變量在內(nèi)存中占4個(gè)字節(jié)共32位,int型數(shù)據(jù)7的二進(jìn)制表示是

0000000000000000

00000000000001117.位運(yùn)算符左面最高位是符號(hào)位,最高位是0表示正數(shù),1表示負(fù)數(shù)。負(fù)數(shù)采用補(bǔ)碼表示,比如-8的補(bǔ)碼是

111111111111111111111111111111000這樣我們就可以對(duì)整型數(shù)據(jù)進(jìn)行按位的運(yùn)算,比如,對(duì)兩個(gè)整型數(shù)據(jù)對(duì)應(yīng)的位進(jìn)行運(yùn)算得到一個(gè)新的整型數(shù)據(jù)。(1)“按位與”運(yùn)算符“&”是雙目運(yùn)算符,對(duì)兩個(gè)整型數(shù)據(jù)a,b

按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。

例如a 0000000000000000

0000000000000111b 10000001101001011111001110101011&c 0000000000000000

0000000000000011

運(yùn)算法則是:如果a,b

兩個(gè)數(shù)據(jù)對(duì)應(yīng)位都是1,則c的該位是1,否則是0。如果b的精度高于a,那么結(jié)果c的精度和b相同。

(2)“按位或”運(yùn)算符“|”是雙目運(yùn)算符。對(duì)兩個(gè)整型數(shù)據(jù)a,b

按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。

運(yùn)算法則:是 如果a,b

兩個(gè)數(shù)據(jù)對(duì)應(yīng)位都是0,則c的該位是0,否則是1。如果b的精度高于與a,那么結(jié)果c的精度和b相同。例如a 0000000000000000

0000000000000111b 10000001101001011111001110101011|c 10000001101001011111001110101111(3)“按位非”運(yùn)算符“~”是單目運(yùn)算符。對(duì)一個(gè)整型數(shù)據(jù)a按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)c。

運(yùn)算法則:是如果a對(duì)應(yīng)位都是0,則c的該位是1否則是1。例如a 0000000000000000

0000000000000111~ab 10000001101001011111001110101011~b 1111111111111111

111111111111100001111110010110100000110001010100 ”^”是雙目運(yùn)算符。對(duì)兩個(gè)整型數(shù)據(jù)a,b

按位進(jìn)行運(yùn)算,運(yùn)算結(jié)果是一個(gè)整型數(shù)據(jù)

c。

運(yùn)算法則:是如果a,b

兩個(gè)數(shù)據(jù)對(duì)應(yīng)位相同,則c的該位是

0,否則是1。如果b的精度高于與a,那么結(jié)果c的精度和b相同。由異或運(yùn)算法則可知:

a^a=0,a^0=a因此,如果c=a^b,那么a=c^b,即用同一個(gè)數(shù)對(duì)數(shù)a進(jìn)行兩次”異或”運(yùn)算的結(jié)果又是數(shù)a。c=a^b=

a^b^b=a^0=a(4)“按位異或”運(yùn)算符c^b在下面的例子1中,利用”異或”運(yùn)算的性質(zhì),對(duì)幾個(gè)字符進(jìn)行加密并輸出密文,然后再解密。

例子1(效果如圖3.1)classExample3_1{publicstaticvoidmain(Stringargs[]){chara1='十',a2='點(diǎn)',a3='進(jìn)',a4='攻';charsecret='8';a1=(char)(a1^secret);a2=(char)(a2^secret);a3=(char)(a3^secret);a4=(char)(a4^secret);

System.out.println("密文:"+a1+a2+a3+a4);a1=(char)(a1^secret);a2=(char)(a2^secret);a3=(char)(a3^secret);a4=(char)(a4^secret);

System.out.println("原文:"+a1+a2+a3+a4);}}位運(yùn)算符也可以操作邏輯型數(shù)據(jù),法則是:當(dāng)a,b

都是true時(shí),a&b

是true,否則a&b

是false。當(dāng)a,b

都是false時(shí),a|b

是false,否則a|b

是true。當(dāng)a是true時(shí),~a是false;當(dāng)a是false時(shí),~a是true.位運(yùn)算符在操作邏輯型數(shù)據(jù)時(shí),與邏輯運(yùn)算符&&,||,!

不同的是:位運(yùn)算符要計(jì)算完a和b的之后,再給出運(yùn)算的結(jié)果。比如,x的初值是1,那么經(jīng)過(guò)下列邏輯比較運(yùn)算后,((y=1)==0))&&((x=6)==6));x的值仍然是1,但是如果經(jīng)過(guò)下列位運(yùn)算之后,((y=1)==0))&((x=6)==6));x的值將是6。■

位運(yùn)算符也可以操作字符數(shù)據(jù),但運(yùn)算結(jié)果是int

型數(shù)據(jù),例如:charx=’a’,y=’b’;那么x|y,x&y,x^y,~x的結(jié)果是int型。8.instanceof

運(yùn)算符

該運(yùn)算符是雙目運(yùn)算符,左面的操作元是一個(gè)對(duì)象;右面是一個(gè)類(lèi)。當(dāng)左面的對(duì)象是右面的類(lèi)創(chuàng)建的對(duì)象時(shí),該運(yùn)算符運(yùn)算的結(jié)果是true

,否則是false。

9.運(yùn)算符綜述Java的表達(dá)式就是用運(yùn)算符連接起來(lái)的符合Java規(guī)則的式子。運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式中運(yùn)算執(zhí)行的先后順序。例如,x<y&&!z相當(dāng)于(x<y)&&(!z),沒(méi)有必要去記憶運(yùn)算符號(hào)的優(yōu)先級(jí)別,在編寫(xiě)程序時(shí)可盡量的使用括號(hào)()運(yùn)算符號(hào)來(lái)實(shí)現(xiàn)你想要的運(yùn)算次序,以免產(chǎn)生難以閱讀或含糊不清的計(jì)算順序。運(yùn)算符的結(jié)合性決定了并列相同級(jí)別的運(yùn)算符的先后順序,例如,加減的結(jié)合性是從左到右,8-5+3相當(dāng)于

(8-5)+3。再如:邏輯否運(yùn)算符!的結(jié)合性是從右到左,!!x相當(dāng)于!(!x)。

表3.4 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性?xún)?yōu)先級(jí)描述運(yùn)算符結(jié)合性分隔符[]().,;

對(duì)象歸類(lèi),

自增自減運(yùn)算,instanceof++--!右到左邏輯非算術(shù)乘除運(yùn)算*/%左到右算術(shù)加減運(yùn)算+-左到右移位運(yùn)算>><<>>>左到右大小關(guān)系運(yùn)算<<=>>=左到右相等關(guān)系運(yùn)算==!=左到右按位與運(yùn)算&左到右按位異或運(yùn)算^左到右按位或運(yùn)算|左到右

表3.4 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性?xún)?yōu)先級(jí)描述運(yùn)算符結(jié)合性邏輯與運(yùn)算&&左到右邏輯或運(yùn)算||左到右三目條件運(yùn)算?:左到右賦值運(yùn)算=右到左3.2語(yǔ)句概述

Java里的語(yǔ)句可分為以下五類(lèi):

1.方法調(diào)用語(yǔ)句

System.out.println(“Hello");2.表達(dá)式語(yǔ)句由一個(gè)表達(dá)式構(gòu)成一個(gè)語(yǔ)句,最典型的是賦值語(yǔ)句。如:x=23;

一個(gè)表達(dá)式的最后加上一個(gè)分號(hào)就構(gòu)成了一個(gè)語(yǔ)句。分號(hào)是語(yǔ)句不可缺少的部分。

3.復(fù)合語(yǔ)句可以用{}把一些語(yǔ)句括起來(lái)構(gòu)成復(fù)合語(yǔ)句。

{z=23+x;

System.out.println("hello");}4.空語(yǔ)句

;5.控制語(yǔ)句包括條件語(yǔ)句和switch開(kāi)關(guān)語(yǔ)句。6.package語(yǔ)句和import語(yǔ)句

package語(yǔ)句和import語(yǔ)句和類(lèi),對(duì)象有關(guān),將在第4章講解。3.3if條件分支語(yǔ)句

Java語(yǔ)言的控制語(yǔ)句有2種類(lèi)型,即條件語(yǔ)句,和switch開(kāi)關(guān)語(yǔ)句。1.條件控制語(yǔ)句(1)if語(yǔ)句的一般形式:

if(表達(dá)式){若干語(yǔ)句

}真表達(dá)式{若干語(yǔ)句}假

if后面()內(nèi)的表達(dá)式的值必須是boolean

類(lèi)型,當(dāng)值為true時(shí),則執(zhí)行緊跟著的復(fù)合語(yǔ)句;如果表達(dá)式的值為false,則執(zhí)行程序中if語(yǔ)句后面的其他語(yǔ)句。復(fù)合語(yǔ)句如果只有一個(gè)語(yǔ)句,{}可以省略不寫(xiě),但為了增強(qiáng)程序的可讀性最好不要省略!例2將變量a,b,c按從小到大順序排列輸出

publicclassExample3_2{publicstaticvoidmain(String

args[]){

inta=9,b=5,c=7,t;

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(b>c){t=b;b=c;c=t;}

System.out.println("a="+a+",b="+b+",c="+c);}}(2)if-else語(yǔ)句的一般形式:if(表達(dá)式){若干語(yǔ)句

}else{若干語(yǔ)句

}表達(dá)式{若干語(yǔ)句}假{若干語(yǔ)句}真

if后面()內(nèi)的表達(dá)式的值必須是boolean

型的。如果表達(dá)式的值為true,則執(zhí)行緊跟著的復(fù)合語(yǔ)句;如果表達(dá)式的值為false,則執(zhí)行else后面的復(fù)合語(yǔ)句。復(fù)合語(yǔ)句是由{}括起來(lái)的若干個(gè)語(yǔ)句。下列是有語(yǔ)法錯(cuò)誤的if-else語(yǔ)句,if(x>0)y=10;z=20;elsey=-100;

正確的寫(xiě)法是

if(x>0){y=10;z=20;}elsey=100;注:

if和else后面的復(fù)合句里如果只有一個(gè)語(yǔ)句,{}可以省略不寫(xiě),但為了增強(qiáng)程序的可讀性最好不要省略。有時(shí)為了編程的需要,else或if后面的大括號(hào)里可以沒(méi)有語(yǔ)句。例3.4publicclassExample3_3{publicstaticvoidmain(Stringargs[]){

intmath=65,english=85;if(math>60){System.out.println("數(shù)學(xué)及格了");}else{System.out.println("數(shù)學(xué)不及格");}

if(english>90){System.out.println("英語(yǔ)是優(yōu)");}else{System.out.println("英語(yǔ)不是優(yōu)");}

System.out.println("我在學(xué)習(xí)控制語(yǔ)句");

}}(3)if語(yǔ)句的擴(kuò)充形式表達(dá)式1false表達(dá)式2false…表達(dá)式nfalse語(yǔ)句1語(yǔ)句2語(yǔ)句nIf(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2…elseif(表達(dá)式n)

語(yǔ)句n

if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3……elseif(表達(dá)式m)語(yǔ)句melse語(yǔ)句n

if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3……elseif(表達(dá)式m)語(yǔ)句melse語(yǔ)句n

if(魚(yú)香肉絲)買(mǎi)魚(yú)香肉絲

else

if(燒茄子)買(mǎi)燒茄子

else

if(燒豆角)買(mǎi)燒豆角

……

else

if(土豆絲)買(mǎi)土豆絲

else不買(mǎi)

if(魚(yú)香肉絲)買(mǎi)魚(yú)香肉絲

elseif(燒茄子)買(mǎi)燒茄子

elseif(燒豆角)買(mǎi)燒豆角

……elseif(土豆絲)買(mǎi)土豆絲

else不買(mǎi)3.4switch開(kāi)關(guān)語(yǔ)句

switch語(yǔ)句是多分支的開(kāi)關(guān)語(yǔ)句,它的一般格式定義如下(其中break語(yǔ)句是可選的):switch(表達(dá)式){case常量值1:

若干個(gè)語(yǔ)句

break;case常量值2:

若干個(gè)語(yǔ)句

break;...case常量值n:

若干個(gè)語(yǔ)句

break;default:

若干語(yǔ)句}

switch語(yǔ)句中表達(dá)式的值必須是整型或字符型,但不能是long;常量值1到常量值n必須也是整型或字符型。

switch語(yǔ)句首先計(jì)算表達(dá)式的值,如果表達(dá)式的值和某個(gè)case后面的常量值相同,就執(zhí)行該case里的若干個(gè)語(yǔ)句直到碰到break語(yǔ)句為止。若沒(méi)有一個(gè)常量與表達(dá)式的值相同,則執(zhí)行default后面的若干個(gè)語(yǔ)句。其中default是可有可無(wú)的,如果它不存在,并且所有的常量值都和表達(dá)式的值不相同,那么switch語(yǔ)句就不會(huì)進(jìn)行任何處理。注意!在同一個(gè)switch語(yǔ)句中,case后的常量值必須互不相同。例4importjava.util.Scanner;publicclassExample3_4{publicstaticvoidmain(String

args[]){

intnumber;

System.out.println("輸入正整數(shù)(回車(chē)確定)");Scannerreader=newScanner(System.in); number=reader.nextInt();

switch(number){ case9: case131: case12:System.out.println(number+"是三等獎(jiǎng)"); break; case209: case596: case27:System.out.println(number+"是二等獎(jiǎng)"); break; case875: case316: case59:System.out.println(number+"是一等獎(jiǎng)"); break; default:System.out.println(number+"未中獎(jiǎng)");}}}3.5循環(huán)語(yǔ)句

1.for循環(huán)語(yǔ)句for語(yǔ)句是java程序設(shè)計(jì)中最有用的循環(huán)語(yǔ)句之一,for語(yǔ)句的格式如下:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){若干語(yǔ)句

}

for語(yǔ)句中的復(fù)合語(yǔ)句{若干語(yǔ)句},稱(chēng)為循環(huán)體。表達(dá)式1負(fù)責(zé)完成變量的初始化。表達(dá)式式2是值為

boolean型的表達(dá)式,稱(chēng)為循環(huán)條件。表達(dá)式3用來(lái)修整變量,改變循環(huán)條件。for語(yǔ)句的執(zhí)行過(guò)程是這樣的:

首先計(jì)算表達(dá)式1,完成必要的初始化工作;再判斷表達(dá)式2的值,若表達(dá)式2的值為true,則執(zhí)行循環(huán)體;執(zhí)行完循環(huán)體之后緊接著計(jì)算表達(dá)式3,以便改變循環(huán)條件,這樣一輪循環(huán)就結(jié)束了。

第二輪循環(huán)從計(jì)算表達(dá)式2開(kāi)始,若表達(dá)式2的值仍為true,則繼續(xù)循環(huán),否則跳出整個(gè)for語(yǔ)句執(zhí)行后面的語(yǔ)句,如圖3.6所示。for(表達(dá)式1;表達(dá)式2;表達(dá)式3){若干語(yǔ)句

}表達(dá)式1表達(dá)式2循環(huán)體表達(dá)式3for(表達(dá)式1;表達(dá)式2;表達(dá)式3){若干語(yǔ)句

}truefalse例5計(jì)算8+88+888+8888……的前12項(xiàng)和

publicclassExample3_5{publicstaticvoidmain(String

args[]){longsum=0,a=8,item=a,n=12,i=1;

for(i=1;i<=n;i++){sum=sum+item;item=item*10+a;}

System.out.println(sum);}}2.while循環(huán)一般格式:

while(表達(dá)式){

若干語(yǔ)句

}3.do-while循環(huán)一般格式:

do{

若干語(yǔ)句

}while(表達(dá)式);當(dāng){}中只有一條語(yǔ)句時(shí),大括號(hào){}可以省略,但最好不要省略,以便增加程序的可讀性。注

do-while循環(huán)和while循環(huán)的區(qū)別是 do-while的循環(huán)體至少被執(zhí)行一次。表達(dá)式{若干語(yǔ)句}假真While循環(huán)語(yǔ)句表達(dá)式{若干語(yǔ)句}假真do-While循環(huán)語(yǔ)句例6用while語(yǔ)句計(jì)算1+1/2!+1/3!+1/4!…的前20項(xiàng)

publicclassExample3_6{publicstaticvoidmain(String

args[]){doublesum=0,item=1;

inti=1,n=20;

while(i<=n){sum=sum+item;i=i+1;item=item*(1.0/i);}

System.out.println("sum="+sum);}}3.6break和continue語(yǔ)句

break和continue語(yǔ)句是指用關(guān)鍵字break或continue加上分號(hào)構(gòu)成的語(yǔ)句,例如:

break;在循環(huán)體中可以使用break語(yǔ)句和continue語(yǔ)句。在一個(gè)循環(huán)中,比如循環(huán)50次的循環(huán)語(yǔ)句中,如果在某次循環(huán)中執(zhí)行了break語(yǔ)句,那么整個(gè)循環(huán)語(yǔ)句就結(jié)束。如果在某次循環(huán)中執(zhí)行了continue語(yǔ)句,那么本次循環(huán)就結(jié)束,即不再執(zhí)行本次循環(huán)中循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,而轉(zhuǎn)入進(jìn)行下一次循環(huán)。

真表達(dá)式1語(yǔ)句1表達(dá)式2語(yǔ)句2While循環(huán)語(yǔ)句假continue真假break例7publicclassExample3_7{publicstaticvoidmain(Stringargs[]){

intsum=0,i,j;for(i=1;i<=10;i++){if(i%2==0)//計(jì)算1+3+5+7+9continue;sum=sum+i;}

System.out.println("sum="+sum);for(j=2;j<=100;j++)//求50以?xún)?nèi)的素?cái)?shù)

{for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){System.out.println(""+j+"是素?cái)?shù)");}}}}3.7for語(yǔ)句與數(shù)組

JDK1.5后,對(duì)for語(yǔ)句的功能給予擴(kuò)充、增強(qiáng),以便更好地遍歷數(shù)組。語(yǔ)法格式如下:for(聲明循環(huán)變量:數(shù)組的名字){…}其中,聲明的循環(huán)變量的類(lèi)型必須和數(shù)組的類(lèi)型相同。這種形式的for語(yǔ)句類(lèi)似自然語(yǔ)言中的“foreach”語(yǔ)句,為了便于理解上述for語(yǔ)句,可以將這種形式的for語(yǔ)句中翻譯成“對(duì)于循環(huán)變量依次取數(shù)組的每一個(gè)元素的值”。

例子8分別使用for語(yǔ)句的傳統(tǒng)方式和改進(jìn)方式遍歷數(shù)組。

publicclassExample3_8{publicstaticvoidmain(Stringargs[]){

inta[]={1,2,3,4};charb[]={'a','b','c','d'};

for(intn=0;n<a.length;n++){//傳統(tǒng)方式

System.out.println(a[n]);}

for(intn=0;n<b.length;n++){//傳統(tǒng)方式

System.out.println(b[n]);}

for(int

i:a){//循環(huán)變量i依次取數(shù)組a的每一個(gè)元素的值(改進(jìn)方式)

System.out.println(i);}for(charch:b){//循環(huán)變量ch依次取數(shù)組b的每一個(gè)元素的值(改進(jìn)方式)

System.out.println(ch);}}}3.8應(yīng)用舉例

前面講過(guò):可以使用Scanner類(lèi)創(chuàng)建一個(gè)對(duì)象:

Scannerreader=newScanner(System.in);◆reader對(duì)象調(diào)用下列方法,讀取用戶(hù)在命令行(例如,MS-DOS窗口)輸入的各種基本類(lèi)型數(shù)據(jù):

nextBoolean()、nextByte()、nextShort()、nextInt()

nextLong()、nextFloat()、nextDouble()。

◆上述方法執(zhí)行時(shí)都會(huì)堵塞,程序等待用戶(hù)在命令行輸入數(shù)據(jù)回車(chē)確認(rèn)。上述方法執(zhí)行時(shí)都會(huì)阻塞,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論