版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ī)則的式子,稱為算術(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,必須寫成5.0/2或5.0f/2。char型數(shù)據(jù)和整型數(shù)據(jù)運(yùn)算結(jié)果的精度是int。例如:bytex=7;
那么‘B’+x;的結(jié)果應(yīng)該是int因此下列寫法是不正確的,
charch=’B’+x;
應(yīng)當(dāng)寫成: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?!?/p>
位運(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è)類。當(dāng)左面的對(duì)象是右面的類創(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í)別,在編寫程序時(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é)合性優(yōu)先級(jí)描述運(yùn)算符結(jié)合性分隔符[]().,;
對(duì)象歸類,
自增自減運(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é)合性優(yōu)先級(jí)描述運(yùn)算符結(jié)合性邏輯與運(yùn)算&&左到右邏輯或運(yùn)算||左到右三目條件運(yùn)算?:左到右賦值運(yùn)算=右到左3.2語(yǔ)句概述
Java里的語(yǔ)句可分為以下五類:
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開關(guān)語(yǔ)句。6.package語(yǔ)句和import語(yǔ)句
package語(yǔ)句和import語(yǔ)句和類,對(duì)象有關(guān),將在第4章講解。3.3if條件分支語(yǔ)句
Java語(yǔ)言的控制語(yǔ)句有2種類型,即條件語(yǔ)句,和switch開關(guān)語(yǔ)句。1.條件控制語(yǔ)句(1)if語(yǔ)句的一般形式:
if(表達(dá)式){若干語(yǔ)句
}真表達(dá)式{若干語(yǔ)句}假
if后面()內(nèi)的表達(dá)式的值必須是boolean
類型,當(dāng)值為true時(shí),則執(zhí)行緊跟著的復(fù)合語(yǔ)句;如果表達(dá)式的值為false,則執(zhí)行程序中if語(yǔ)句后面的其他語(yǔ)句。復(fù)合語(yǔ)句如果只有一個(gè)語(yǔ)句,{}可以省略不寫,但為了增強(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;
正確的寫法是
if(x>0){y=10;z=20;}elsey=100;注:
if和else后面的復(fù)合句里如果只有一個(gè)語(yǔ)句,{}可以省略不寫,但為了增強(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(魚香肉絲)買魚香肉絲
else
if(燒茄子)買燒茄子
else
if(燒豆角)買燒豆角
……
else
if(土豆絲)買土豆絲
else不買
if(魚香肉絲)買魚香肉絲
elseif(燒茄子)買燒茄子
elseif(燒豆角)買燒豆角
……elseif(土豆絲)買土豆絲
else不買3.4switch開關(guān)語(yǔ)句
switch語(yǔ)句是多分支的開關(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ù)(回車確定)");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ǔ)句},稱為循環(huán)體。表達(dá)式1負(fù)責(zé)完成變量的初始化。表達(dá)式式2是值為
boolean型的表達(dá)式,稱為循環(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開始,若表達(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以內(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)變量的類型必須和數(shù)組的類型相同。這種形式的for語(yǔ)句類似自然語(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類創(chuàng)建一個(gè)對(duì)象:
Scannerreader=newScanner(System.in);◆reader對(duì)象調(diào)用下列方法,讀取用戶在命令行(例如,MS-DOS窗口)輸入的各種基本類型數(shù)據(jù):
nextBoolean()、nextByte()、nextShort()、nextInt()
nextLong()、nextFloat()、nextDouble()。
◆上述方法執(zhí)行時(shí)都會(huì)堵塞,程序等待用戶在命令行輸入數(shù)據(jù)回車確認(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)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工試用期個(gè)人工作總結(jié)15篇
- 呼蘭河傳讀后感3篇
- 總裝技能提升練習(xí)卷含答案
- 人才庫(kù)經(jīng)營(yíng)復(fù)習(xí)試題及答案
- 落地式砂輪機(jī)安全檢查要點(diǎn)總結(jié)
- 語(yǔ)文統(tǒng)編版(2024)一年級(jí)上冊(cè)漢語(yǔ)拼音2.iuü 教案
- 《學(xué)前兒童衛(wèi)生保健》 教案 7 學(xué)前兒童的生長(zhǎng)發(fā)育及健康評(píng)價(jià)
- 高中英語(yǔ)語(yǔ)法情態(tài)動(dòng)詞
- 第1章 緒論 企業(yè)經(jīng)營(yíng)統(tǒng)計(jì)學(xué)課件
- 大學(xué)校園環(huán)境建設(shè)的調(diào)查報(bào)告
- 2023年甘肅白銀有色集團(tuán)股份有限公司招聘考試真題
- 人教版三年級(jí)語(yǔ)文上冊(cè)第三、四單元試卷(含答案)
- 交互式虛擬展廳設(shè)計(jì)
- 廣東省清遠(yuǎn)市清城區(qū)2023-2024學(xué)年一年級(jí)上學(xué)期期中語(yǔ)文試卷
- 電磁場(chǎng)與電磁波(第五版)完整全套教學(xué)課件
- 主題三 第2課 設(shè)計(jì)制作我的汽車(教學(xué)設(shè)計(jì))教科版六年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)
- 零星維修工程投標(biāo)方案(技術(shù)方案)
- 2023-2024學(xué)年滬科版數(shù)學(xué)八年級(jí)上冊(cè)期中測(cè)試題附答案(共2套)
- 2024年山東省青島市中考數(shù)學(xué)試卷(附答案)
- 結(jié)構(gòu)加固工程監(jiān)理控制措施
- 8《沏茶問(wèn)題》(教案)-2024-2025學(xué)年人教版四年級(jí)上冊(cè)數(shù)學(xué)
評(píng)論
0/150
提交評(píng)論