版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第章運算符、表達(dá)式和語句第章運算符、表達(dá)式和語句n3.1 運算符與表達(dá)式運算符與表達(dá)式n3.2 語句概述語句概述n3.3 if語句語句n3.4 switch語句語句n3.5 循環(huán)語句循環(huán)語句n3.6 break和和continue語句語句 n3.7 for語句與數(shù)組語句與數(shù)組23.1 運算符與表達(dá)式運算符與表達(dá)式nJava 提供了豐富的運算符,如提供了豐富的運算符,如算術(shù)運算符、算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符關(guān)系運算符、邏輯運算符、位運算符等。本節(jié)等。本節(jié)將介紹大部分運算符。將介紹大部分運算符。31 算術(shù)運算符與表達(dá)式算術(shù)運算符與表達(dá)式 n加減運算符:加減運算符:+,-,加減運
2、算符的結(jié)合方向是從,加減運算符的結(jié)合方向是從左到右左到右。加減運算符的優(yōu)先級是。加減運算符的優(yōu)先級是4級級。n乘,除和求余運算符:乘,除和求余運算符:*,/,%,運算符的結(jié)合,運算符的結(jié)合方向是從方向是從左到右左到右。乘除運算符的。乘除運算符的操作元操作元是整型或是整型或浮點型數(shù)據(jù)。浮點型數(shù)據(jù)。*,/,%(取余)運算符的優(yōu)先級(取余)運算符的優(yōu)先級是是3級級。n用用算術(shù)符號算術(shù)符號和和括號括號連接起來的連接起來的符合符合java語法規(guī)則語法規(guī)則的式子的式子,稱為,稱為算術(shù)表達(dá)式算術(shù)表達(dá)式,如,如: x+2*y-30+3*(y+5)。4自增,自減運算符:自增,自減運算符:+,- n自增、自減運算
3、符是自增、自減運算符是單目單目運算符,可以放在操運算符,可以放在操作元作元之前之前,也可以放在操作元,也可以放在操作元之后之后。操作元必。操作元必須是一個須是一個整型整型或或浮點型浮點型變量。作用是使變量的變量。作用是使變量的值值增增1或或減減1n+x(-x)表示在)表示在使用使用x之前之前,先使,先使x的值加的值加(減)(減)1。nx+(x-)表示在)表示在使用使用x之后之后,使,使x的值加(減)的值加(減)1。下一次下一次5n粗略的看粗略的看,+x 和和 x+的作用的作用相當(dāng)于相當(dāng)于 x=x+1。但但+x 和和 x+的的不同之處不同之處在于在于,+x 是是先先執(zhí)行執(zhí)行 x=x+1 再再使用
4、使用 x 的值的值,而而 x+是是先先使用使用 x 的值的值再再執(zhí)行執(zhí)行 x=x+1。n如果如果 x 的原值是的原值是 5,則:則: 對于對于 y=+xy 的值為的值為 6,x 的值也變?yōu)榈闹狄沧優(yōu)?6。y 的值為的值為 5,然后,然后 x 的值變?yōu)榈闹底優(yōu)?6。 對于對于 y=x+63算術(shù)混合運算的精度算術(shù)混合運算的精度 n精度從精度從“低低”到到“高高”排列的順序是:排列的順序是:byte short int long float doublenJava將按運算符兩邊的操作元的將按運算符兩邊的操作元的最高精度最高精度保留結(jié)果的精度。保留結(jié)果的精度。 例如:例如: 5/2的結(jié)果是的結(jié)果是2,
5、要想得到,要想得到2.5,必須寫成必須寫成5.0/2或或5.0f/2。nchar型數(shù)據(jù)型數(shù)據(jù)和和整型數(shù)據(jù)整型數(shù)據(jù)運算結(jié)果的精度是運算結(jié)果的精度是int。 例如:例如: byte x=7; 那么那么 B+x; 的結(jié)果應(yīng)該是的結(jié)果應(yīng)該是int 因此下列寫法是因此下列寫法是不正確不正確的,的,char ch=B+x; 應(yīng)當(dāng)寫成應(yīng)當(dāng)寫成: char ch=(char)(B+x);7 Java在計算算術(shù)表達(dá)式的值時在計算算術(shù)表達(dá)式的值時,使用下列計算精度規(guī)則:使用下列計算精度規(guī)則:1如果表達(dá)式中有雙精度浮點數(shù)(如果表達(dá)式中有雙精度浮點數(shù)(double型數(shù)據(jù)),則型數(shù)據(jù)),則按雙精度進(jìn)行運算按雙精度進(jìn)行運
6、算。2如果表達(dá)式中最高精度是單精度浮點數(shù)(如果表達(dá)式中最高精度是單精度浮點數(shù)(float型數(shù)型數(shù)據(jù)),則據(jù)),則按單精度進(jìn)行運算按單精度進(jìn)行運算。3如果表達(dá)式中最高精度是如果表達(dá)式中最高精度是long型整數(shù),則型整數(shù),則按按long精度精度進(jìn)行運算。進(jìn)行運算。4如果表達(dá)式中最高精度如果表達(dá)式中最高精度低于低于int型整數(shù),則型整數(shù),則按按int精度進(jìn)精度進(jìn)行運算。行運算。n精度從精度從“低低”到到“高高”排列的順序是:排列的順序是:byte short int long float double84關(guān)系運算符與關(guān)系表達(dá)式關(guān)系運算符與關(guān)系表達(dá)式n關(guān)系運算符:關(guān)系運算符:,=,!=, =n關(guān)系運算
7、符用來關(guān)系運算符用來比較兩個值的比較兩個值的關(guān)系關(guān)系。關(guān)系運算符的運。關(guān)系運算符的運算算結(jié)果結(jié)果是是boolean型型,當(dāng)運算符對應(yīng)的關(guān)系成立時,當(dāng)運算符對應(yīng)的關(guān)系成立時,運算結(jié)果是運算結(jié)果是true,否則是,否則是false。n例如,例如,101 的結(jié)果是的結(jié)果是 true,注意:注意:因為算術(shù)運算符的級別因為算術(shù)運算符的級別高于高于關(guān)系運算符關(guān)系運算符, 1020-17 相當(dāng)于相當(dāng)于 10(20-17),結(jié)果當(dāng)結(jié)果當(dāng) 然是然是 true。 3!=5 的結(jié)果是的結(jié)果是1020-17 的結(jié)果為的結(jié)果為truetrue9n結(jié)果為結(jié)果為數(shù)值型數(shù)值型的的變量變量或或表達(dá)式表達(dá)式可以通過可以通過關(guān)系運
8、算關(guān)系運算符符(如表(如表 3.1 所示)形成所示)形成關(guān)系表達(dá)式關(guān)系表達(dá)式。如,。如,48,(x+y)80。 p35 運算符運算符 優(yōu)先級優(yōu)先級 用法用法 含義含義 結(jié)合方向結(jié)合方向6op1op2大于大于左到右左到右6op1=6op1=op2大于等于大于等于左到右左到右=6op18&92的結(jié)果為的結(jié)果為false,28|92的結(jié)果為的結(jié)果為true。3!=52125&n短路邏輯運算符短路邏輯運算符126賦值運算符與賦值表達(dá)式賦值運算符與賦值表達(dá)式n賦值運算符:賦值運算符:=n賦值運算符是賦值運算符是雙目雙目運算符,運算符,左面的操作元左面的操作元必須必須是是變量變量,不能是不能是常量常量或或
9、表達(dá)式表達(dá)式。n賦值運算符的賦值運算符的優(yōu)先級較低,是優(yōu)先級較低,是14級級,結(jié)合方向,結(jié)合方向右右到到左左。賦值表達(dá)式的值就是。賦值表達(dá)式的值就是“=”左面變量的左面變量的值。值。n注意注意:不要將賦值運算符不要將賦值運算符“=”與等號運算符與等號運算符“=”混淆。混淆。n 設(shè)設(shè)x是一個整型變量,是一個整型變量,y是一個是一個boolean型變量,型變量,x=20 和和y = true都是正確的賦值表達(dá)式,都是正確的賦值表達(dá)式,13n整型數(shù)據(jù)整型數(shù)據(jù)在在內(nèi)存中內(nèi)存中以二進(jìn)制的形式表示以二進(jìn)制的形式表示,比如一個比如一個int 型的變量在內(nèi)存中占型的變量在內(nèi)存中占4個字節(jié)共個字節(jié)共32 位位,
10、int型數(shù)型數(shù)據(jù)據(jù)7的的 二進(jìn)制表示是二進(jìn)制表示是 00000000 00000000 00000000 000001117位運算符位運算符n左面左面最高位是最高位是符號位符號位,最高位是最高位是 0 表示正數(shù)表示正數(shù),1 表示表示負(fù)數(shù)。負(fù)數(shù)采用負(fù)數(shù)。負(fù)數(shù)采用補碼補碼表示表示,比如比如-8 的補碼是的補碼是 111111111 111111111 1111111 11111000n這樣我們就可以對這樣我們就可以對整型數(shù)據(jù)整型數(shù)據(jù)進(jìn)行進(jìn)行按位的運算按位的運算,比如比如,對兩個整型數(shù)據(jù)對兩個整型數(shù)據(jù)對應(yīng)的位對應(yīng)的位進(jìn)行運算得到一個進(jìn)行運算得到一個新新的的整型整型數(shù)據(jù)數(shù)據(jù)。14n(1)“按位與按位與
11、”運算符運算符 “&”是是雙目運算符雙目運算符,對兩個整型數(shù)據(jù)對兩個整型數(shù)據(jù) a,b 按按位位進(jìn)行運算進(jìn)行運算,運算結(jié)果是一個整型數(shù)據(jù)運算結(jié)果是一個整型數(shù)據(jù)c。 例如例如a00000000 00000000 00000000 00000111b10000001 10100101 11110011 10101011&c00000000 00000000 00000000 00000011 運算法則運算法則是:如果是:如果 a,b 兩個數(shù)據(jù)兩個數(shù)據(jù)對應(yīng)位對應(yīng)位都都是是 1,則則 c 的該位是的該位是 1,否則是否則是 0。如果。如果 b 的的精度精度高于高于 a,那么結(jié)果那么結(jié)果 c 的精度和的精
12、度和 b 相同。相同。 15n(2)“按位或按位或”運算符運算符 “|”是是雙目運算符雙目運算符。對兩個整型數(shù)據(jù)。對兩個整型數(shù)據(jù) a,b 按位進(jìn)按位進(jìn)行行運算運算,運算結(jié)果是一個整型數(shù)據(jù)運算結(jié)果是一個整型數(shù)據(jù)c。 運算法則運算法則:是:是如果如果 a,b 兩個數(shù)據(jù)兩個數(shù)據(jù)對應(yīng)位對應(yīng)位都是都是 0,則則 c的該位是的該位是 0,否則是否則是 1。如果。如果 b 的的精度精度高于與高于與 a,那么結(jié)果那么結(jié)果c的精度和的精度和 b 相同。相同。例如例如a00000000 00000000 00000000 00000111b10000001 10100101 11110011 10101011|c
13、10000001 10100101 11110011 1010111116n(3) “按位非按位非”運算符運算符 “”是是單目運算符單目運算符。對一個整型數(shù)據(jù)。對一個整型數(shù)據(jù) a 按位進(jìn)行按位進(jìn)行運運算算,運算結(jié)果是一個整型數(shù)據(jù)運算結(jié)果是一個整型數(shù)據(jù) c。 運算法則運算法則:是如果:是如果 a 對應(yīng)位都是對應(yīng)位都是 0,則則 c 的的該位該位是是 1否則是否則是 1。例如例如a00000000 00000000 00000000 00000111ab10000001 10100101 11110011 10101011b11111111 11111111 11111111 1111100001
14、111110 01011010 00001100 0101010017 ”是是雙目運算符。雙目運算符。對兩個整型數(shù)據(jù)對兩個整型數(shù)據(jù) a,b 按位進(jìn)按位進(jìn)行運算行運算,運算結(jié)果是一個運算結(jié)果是一個整型數(shù)據(jù)整型數(shù)據(jù) c。 運算法則運算法則:是如果:是如果 a,b 兩個數(shù)據(jù)兩個數(shù)據(jù)對應(yīng)位對應(yīng)位相同相同,則則 c的該位是的該位是 0,否則是否則是 1。如果。如果 b 的的精度精度高于與高于與 a,那那么結(jié)果么結(jié)果c 的精度和的精度和 b 相同。相同。n由異或運算法則可知:由異或運算法則可知: aa=0, a0=an因此因此,如果如果 c=ab,那么那么 a=cb,即用同一個數(shù)對數(shù)即用同一個數(shù)對數(shù) a
15、進(jìn)進(jìn)行行兩次兩次”異或異或”運算的結(jié)果又是數(shù)運算的結(jié)果又是數(shù) a。c=ab= abb=a0=an(4)“按位異或按位異或”運算符運算符cb18在下面的例子在下面的例子1 中中,利用利用”異或異或”運算的性質(zhì)運算的性質(zhì),對幾個對幾個字符進(jìn)行加密并輸出密文字符進(jìn)行加密并輸出密文,然后再解密。然后再解密。例子例子1(效果如圖(效果如圖3.1)class Example3_1 public static void main(String args ) char a1=十十,a2=點點,a3=進(jìn)進(jìn),a4=攻攻; char secret=8; a1=(char)(a1secret); a2=(char)(
16、a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(密文密文:+a1+a2+a3+a4); a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(原文原文:+a1+a2+a3+a4); 19n位運算符位運算符也也可以操作可以操作邏輯型數(shù)據(jù)邏輯型數(shù)據(jù),法則是法則是: 當(dāng)當(dāng) a,b 都是都是 true 時時,a&b 是是 true,否則否則 a&b 是是 f
17、alse。 當(dāng)當(dāng) a,b 都是都是 false 時時,a|b 是是 false,否則否則 a|b 是是 true。 當(dāng)當(dāng) a 是是 true 時時,a 是是 false;當(dāng);當(dāng) a 是是 false 時時,a 是是 true.n位運算符位運算符在操作邏輯型數(shù)據(jù)在操作邏輯型數(shù)據(jù)時時,與與邏輯運算符邏輯運算符&,|,! 不同的是不同的是:位運算符要計算完位運算符要計算完a和和b的之后,再給出運算的之后,再給出運算的結(jié)果的結(jié)果。n比如,比如,x 的初值是的初值是 1,那么經(jīng)過下列邏輯比較運算后那么經(jīng)過下列邏輯比較運算后, (y=1)=0)&(x=6)=6); x 的值的值仍然仍然是是 1,n但是如果
18、經(jīng)過下列位運算之后但是如果經(jīng)過下列位運算之后, (y=1)=0)&(x=6)=6); x 的值將是的值將是 6。 位運算符位運算符也也可以操作可以操作字符數(shù)據(jù)字符數(shù)據(jù),但運算但運算結(jié)果是結(jié)果是 int 型數(shù)據(jù)型數(shù)據(jù),例如:例如:char x=a,y=b; 那么那么x|y,x&y,xy, x 的的結(jié)果是結(jié)果是 int 型型。208instanceof 運算符運算符n 該運算符是該運算符是雙目運算符雙目運算符,左面左面的操作元是的操作元是一一個對象個對象;右面右面是是一個類一個類。n當(dāng)左面的對象是右面的類當(dāng)左面的對象是右面的類創(chuàng)建創(chuàng)建的對象時,該運的對象時,該運算符運算的結(jié)果是算符運算的結(jié)果是tr
19、ue ,否則是,否則是false。 219運算符綜述運算符綜述nJava的表達(dá)式的表達(dá)式就是用運算符連接起來的符合就是用運算符連接起來的符合Java規(guī)規(guī)則的式子。則的式子。n運算符的優(yōu)先級運算符的優(yōu)先級決定決定了表達(dá)式中運算執(zhí)行的了表達(dá)式中運算執(zhí)行的先后順序先后順序。 例如,例如,xy&!z相當(dāng)于相當(dāng)于(x 左到右左到右 大小關(guān)系運算大小關(guān)系運算 = 左到右左到右 相等關(guān)系運算相等關(guān)系運算 = != 左到右左到右 按位與運算按位與運算 & 左到右左到右 按位異或運算按位異或運算 左到右左到右 按位或運算按位或運算 | 左到右左到右23 表表 3.4 運算符的優(yōu)先級和結(jié)合性運算符的優(yōu)先級和結(jié)合性
20、優(yōu)先級優(yōu)先級 描述描述 運算符運算符 結(jié)合性結(jié)合性 邏輯與運算邏輯與運算 & 左到右左到右 邏輯或運算邏輯或運算 | 左到右左到右 三目條件運算三目條件運算 ?:?: 左到右左到右 賦值運算賦值運算 = 右到左右到左243.2 語句概述語句概述nJava里的語句可分為以下五類:里的語句可分為以下五類: 1.方法調(diào)用語句方法調(diào)用語句 System.out.println(“Hello); 2.表達(dá)式語句表達(dá)式語句 由一個表達(dá)式構(gòu)成一個語句由一個表達(dá)式構(gòu)成一個語句,最典型的是最典型的是賦值語句。如:賦值語句。如:x=23; 一個表達(dá)式的最后加上一個分號就構(gòu)成了一個表達(dá)式的最后加上一個分號就構(gòu)成了一
21、個語句。分號是語句一個語句。分號是語句不可缺少不可缺少的部分。的部分。 253.復(fù)合語句復(fù)合語句 可以用可以用 把一些語句括起來構(gòu)成復(fù)合語句。把一些語句括起來構(gòu)成復(fù)合語句。 z=23+x; System.out.println(hello); 4.空語句空語句 ;5.控制語句控制語句 包括條件語句和包括條件語句和switch開關(guān)語句。開關(guān)語句。6. package 語句和語句和 import語句語句 package 語句和語句和 import 語句和類語句和類,對象有關(guān)對象有關(guān),將將在第在第 4 章講解。章講解。263.3 if條件分支語句條件分支語句 nJava 語言的控制語句有語言的控制語
22、句有2種類型,即種類型,即條件語句條件語句,和和switch開關(guān)語句開關(guān)語句。1條件控制語句條件控制語句(1)if 語句的一般形式:語句的一般形式: if(表達(dá)式表達(dá)式) 若干語句若干語句 真真表達(dá)式表達(dá)式若干語句若干語句假假 if 后面后面( )內(nèi)的表達(dá)式的值必須是內(nèi)的表達(dá)式的值必須是boolean 類型類型,當(dāng)值為當(dāng)值為 true 時時,則執(zhí)行緊則執(zhí)行緊跟著的復(fù)合語句跟著的復(fù)合語句;如果表達(dá)式的值為如果表達(dá)式的值為 false,則執(zhí)行程序中則執(zhí)行程序中if語句后面的其他語句后面的其他語句。復(fù)合語句如果只有一語句。復(fù)合語句如果只有一 個語句個語句, 可以省略不寫可以省略不寫,但為了增強程序的
23、可但為了增強程序的可讀性最好不要省略!讀性最好不要省略!27例例2將變量將變量a,b,c按從小到大順序排列輸出按從小到大順序排列輸出 public class Example3_2 public static void main(String args) int a=9,b=5,c=7,t; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; System.out.println(a=+a+,b=+b+,c=+c); 28(2)if-else 語句的一般形式:語句的一般形式:if(表達(dá)式表達(dá)式) 若干語句若干語句 else 若
24、干語句若干語句 表達(dá)式表達(dá)式若干語句若干語句假假若干語句若干語句真真 if后面后面( )內(nèi)的表達(dá)式的值必須是內(nèi)的表達(dá)式的值必須是 boolean 型的。如果表達(dá)式型的。如果表達(dá)式的值為的值為 true,則執(zhí)行,則執(zhí)行緊跟著緊跟著的復(fù)合語句;如果表達(dá)式的值為的復(fù)合語句;如果表達(dá)式的值為false,則執(zhí)行,則執(zhí)行else后面的復(fù)合語句。復(fù)合語句是由后面的復(fù)合語句。復(fù)合語句是由 括起來括起來的若干個語句的若干個語句。29下列是有語法錯誤的下列是有語法錯誤的 if-else 語句語句, if(x0) y=10; z=20; else y=-100; 正確的寫法是正確的寫法是 if(x0) y=10;
25、z=20; else y=100;注:注: if 和和 else 后面的復(fù)合句里如果只有一個語句后面的復(fù)合句里如果只有一個語句, 可以省可以省略不寫略不寫,但為了增強程序的可讀性最好不要省略。有時為了但為了增強程序的可讀性最好不要省略。有時為了編程的需要編程的需要,else 或或 if 后面的大括號里可以沒有語句。后面的大括號里可以沒有語句。30例例3.4public class Example3_3 public static void main(String args) int math=65,english=85; if(math60) System.out.println(數(shù)學(xué)及格了數(shù)
26、學(xué)及格了); else System.out.println(數(shù)學(xué)不及格數(shù)學(xué)不及格); if(english90) System.out.println(英語是優(yōu)英語是優(yōu)); else System.out.println(英語不是優(yōu)英語不是優(yōu)); System.out.println(我在學(xué)習(xí)控制語句我在學(xué)習(xí)控制語句); 31(3)if 語句的擴(kuò)充形式語句的擴(kuò)充形式表達(dá)式表達(dá)式1false表達(dá)式表達(dá)式2false表達(dá)式表達(dá)式nfalse語句語句1語句語句2語句語句nIf (表達(dá)式(表達(dá)式1) 語句語句1else if(表達(dá)式(表達(dá)式2) 語句語句2else if(表達(dá)式表達(dá)式n) 語句語句n
27、32 if if(表達(dá)式(表達(dá)式1 1) 語句語句1 1 else if( else if(表達(dá)式表達(dá)式2) 2) 語句語句2 2 else if( else if(表達(dá)式表達(dá)式3) 3) 語句語句3 3 else if( else if(表達(dá)式表達(dá)式m) m) 語句語句m m else else 語句語句n n if if(表達(dá)式(表達(dá)式1 1) 語句語句1 1 else else if( if(表達(dá)式表達(dá)式2) 2) 語句語句2 2 else else if( if(表達(dá)式表達(dá)式3) 3) 語句語句3 3 else else if( if(表達(dá)式表達(dá)式m) m) 語句語句m m else
28、else 語句語句n n if if(魚香肉絲)(魚香肉絲) 買魚香肉絲買魚香肉絲 else else if(if(燒茄子燒茄子) ) 買燒茄子買燒茄子 elseelse if(if(燒豆角燒豆角) ) 買燒豆角買燒豆角 else else if(if(土豆絲土豆絲) ) 買土豆絲買土豆絲 else else 不買不買 if if(魚香肉絲魚香肉絲) 買魚香肉絲買魚香肉絲 else if(else if(燒茄子燒茄子) ) 買燒茄子買燒茄子 else if(else if(燒豆角燒豆角) ) 買燒豆角買燒豆角 else if( else if(土豆絲土豆絲) )買土豆絲買土豆絲 else el
29、se 不買不買333.4 switch開關(guān)語句開關(guān)語句 nswitch 語句是多分支的開關(guān)語句,它的一般格式定義如下語句是多分支的開關(guān)語句,它的一般格式定義如下(其中(其中break語句是可選的):語句是可選的):switch(表達(dá)式表達(dá)式) case 常量值常量值1: 若干個語句若干個語句 break; case 常量值常量值2: 若干個語句若干個語句 break; . case 常量值常量值n: 若干個語句若干個語句 break; default: 若干語句若干語句 switch語句中表達(dá)式的值必須是語句中表達(dá)式的值必須是整型整型或或字符型,但不能是字符型,但不能是long;常量值常量值
30、1 到常量值到常量值n 必須也是必須也是整型整型或或字符型字符型。 switch 語句語句首先首先計算表達(dá)式的值計算表達(dá)式的值,如果表如果表達(dá)式的值和某個達(dá)式的值和某個case 后面的常量值后面的常量值相同相同,就就 執(zhí)行該執(zhí)行該 case里的若干個語句里的若干個語句直到直到碰到碰到break 語句為止。若語句為止。若沒有沒有一個常量與表達(dá)式的值相同一個常量與表達(dá)式的值相同, 則執(zhí)行則執(zhí)行 default 后面的若干個語句。其中后面的若干個語句。其中 default 是是可有可無的可有可無的,如果它如果它不存在不存在,并且所有并且所有的常量值都和表達(dá)式的值的常量值都和表達(dá)式的值不相同不相同,那
31、么那么 switch語句就語句就不會不會進(jìn)行任何處理。進(jìn)行任何處理。注意!注意! 在同一個在同一個switch 語句中語句中,case 后的常量值必須后的常量值必須互不相同互不相同。34例例4import java.util.Scanner;public class Example3_4 public static void main(String args) int number;System.out.println(輸入正整數(shù)輸入正整數(shù)(回車確定回車確定); Scanner reader=new Scanner(System.in);number = reader.nextInt();sw
32、itch(number) case 9 : case 131 : case 12 : System.out.println(number+是三等獎是三等獎); break; case 209 : case 596 : case 27 : System.out.println(number+是二等獎是二等獎); break; case 875 : case 316 : case 59 : System.out.println(number+是一等獎是一等獎); break; default: System.out.println(number+未中獎未中獎); 353.5 循環(huán)語句循環(huán)語句 n1
33、for循環(huán)語句循環(huán)語句for 語句是語句是java程序設(shè)計中程序設(shè)計中最有用最有用的循環(huán)語句之的循環(huán)語句之一,一,for語句的格式如下:語句的格式如下:for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 若干語句若干語句 for 語句中的復(fù)合語句語句中的復(fù)合語句若干語句若干語句,稱為稱為循環(huán)體循環(huán)體。 表達(dá)式表達(dá)式 1 負(fù)責(zé)完成變量的負(fù)責(zé)完成變量的初始化初始化。 表達(dá)式式表達(dá)式式 2 是值為是值為 boolean型的表達(dá)式型的表達(dá)式,稱為稱為循環(huán)條件循環(huán)條件。 表達(dá)式表達(dá)式 3 用來修整變量用來修整變量,改變循環(huán)條件改變循環(huán)條件。36nfor 語句的執(zhí)行過程是這樣的:語句的執(zhí)行過程是
34、這樣的: 首先首先計算表達(dá)式計算表達(dá)式 1,完成必要的初始化工作;完成必要的初始化工作;再再判斷判斷表達(dá)式表達(dá)式 2 的值的值,若表達(dá)式若表達(dá)式 2 的值為的值為 true,則執(zhí)則執(zhí)行循環(huán)體;執(zhí)行完循環(huán)體之后行循環(huán)體;執(zhí)行完循環(huán)體之后緊接緊接著計算表達(dá)式著計算表達(dá)式 3,以便以便改變循環(huán)條件改變循環(huán)條件,這樣一輪循環(huán)就這樣一輪循環(huán)就結(jié)束結(jié)束了。了。 第二輪循環(huán)第二輪循環(huán)從計算表達(dá)式從計算表達(dá)式2開始開始,若表達(dá)式若表達(dá)式2的的值仍為值仍為 true ,則則繼續(xù)循環(huán)繼續(xù)循環(huán),否則否則跳出整個跳出整個 for 語語句執(zhí)行后面的語句句執(zhí)行后面的語句,如圖如圖 3.6 所示。所示。for(表達(dá)式表達(dá)式
35、1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 若干語句若干語句 37表達(dá)式表達(dá)式1表達(dá)式表達(dá)式2循環(huán)體循環(huán)體表達(dá)式表達(dá)式3for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 若干語句若干語句 truefalse38例例5 計算計算8+88+888+8888 的前的前12項和項和 public class Example3_5 public static void main(String args) long sum=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
36、(sum); 392while 循環(huán)循環(huán)一般格式:一般格式: while(表達(dá)式表達(dá)式) 若干語句若干語句 3do-while循環(huán)循環(huán)一般格式:一般格式: do 若干語句若干語句 while(表達(dá)式表達(dá)式); 當(dāng)當(dāng) 中只有一條語句時,大括號中只有一條語句時,大括號 可以省略,但可以省略,但最好不要省略最好不要省略,以便增加程序的可讀性。以便增加程序的可讀性。注注 do-while 循環(huán)和循環(huán)和 while 循環(huán)的循環(huán)的區(qū)別區(qū)別是是do-while 的循環(huán)體的循環(huán)體至少至少被執(zhí)行一次。被執(zhí)行一次。40表達(dá)式表達(dá)式若干語句若干語句假假真真While 循環(huán)語句循環(huán)語句表達(dá)式表達(dá)式若干語句若干語句假假
37、真真do-While 循環(huán)語句循環(huán)語句41例例6 用用while語句計算語句計算1+1/2!+1/3!+1/4! 的前的前20項項 public class Example3_6 public static void main(String args) double sum=0,item=1; int i=1,n=20; while(i=n) sum=sum+item; i=i+1; item=item*(1.0/i); System.out.println(sum=+sum); 423.6 break和和continue語句語句nbreak和和continue語句是指用關(guān)鍵字語句是指用關(guān)鍵字
38、break或或continue加上分號構(gòu)成的語句,例如:加上分號構(gòu)成的語句,例如: break;n在在循環(huán)體中循環(huán)體中可以使用可以使用break語句和語句和continue語語句。在一個循環(huán)中,比如循環(huán)句。在一個循環(huán)中,比如循環(huán)50次的循環(huán)語句次的循環(huán)語句中,如果在中,如果在某次循環(huán)某次循環(huán)中執(zhí)行了中執(zhí)行了break語句,那語句,那么么整個整個循環(huán)語句就結(jié)束。如果在循環(huán)語句就結(jié)束。如果在某次循環(huán)某次循環(huán)中執(zhí)中執(zhí)行了行了continue語句,那么語句,那么本次本次循環(huán)就結(jié)束,循環(huán)就結(jié)束,即不再執(zhí)行本次循環(huán)中循環(huán)體中即不再執(zhí)行本次循環(huán)中循環(huán)體中continue語語句后面的語句,而轉(zhuǎn)入進(jìn)行句后面的語
39、句,而轉(zhuǎn)入進(jìn)行下一次下一次循環(huán)。循環(huán)。 43真真表達(dá)式表達(dá)式1語句語句1表達(dá)式表達(dá)式2語句語句2While 循環(huán)語句循環(huán)語句假假continue真真假假break44例例7public class Example3_7 public static void main(String args) int sum=0,i,j; for(i=1;i=10;i+) if(i%2=0) /計算計算1+3+5+7+9 continue; sum=sum+i; System.out.println(sum=+sum); for(j=2;j=100;j+) /求求50以內(nèi)的素數(shù)以內(nèi)的素數(shù) for(i=2;ij/
40、2) System.out.println(+j+是素數(shù)是素數(shù)); 45463.7 forfor語句與數(shù)組語句與數(shù)組 JDK1.5后后,對對for語句的功能語句的功能給予擴(kuò)充給予擴(kuò)充、增強,以便更好地、增強,以便更好地遍歷數(shù)組。語法格式如下:遍歷數(shù)組。語法格式如下:for(聲明循環(huán)變量:數(shù)組的名字聲明循環(huán)變量:數(shù)組的名字) 其中,聲明的循環(huán)變量的其中,聲明的循環(huán)變量的類型必須和數(shù)組的類型相同類型必須和數(shù)組的類型相同。這。這種形式的種形式的for語句類似自然語言中的語句類似自然語言中的“for each”語句,為了語句,為了便于理解上述便于理解上述for語句,可以將這種形式的語句,可以將這種形式
41、的for語句中翻譯成語句中翻譯成“對于循環(huán)變量依次取數(shù)組的每一個元素的值對于循環(huán)變量依次取數(shù)組的每一個元素的值”。 47例子例子8 分別使用分別使用for語句的傳統(tǒng)方式和改進(jìn)方式遍歷數(shù)組。語句的傳統(tǒng)方式和改進(jìn)方式遍歷數(shù)組。 public class Example3_8 public static void main(String args) int a = 1,2,3,4; char b = a,b,c,d; for(int n=0;na.length;n+) /傳統(tǒng)方式傳統(tǒng)方式 System.out.println(an); for(int n=0;nb.length;n+) /傳統(tǒng)方式傳
42、統(tǒng)方式 System.out.println(bn); for(int i:a) /循環(huán)變量循環(huán)變量i依次取數(shù)組依次取數(shù)組a的每一個元素的值(改進(jìn)方式)的每一個元素的值(改進(jìn)方式) System.out.println(i); for(char ch:b) /循環(huán)變量循環(huán)變量ch依次取數(shù)組依次取數(shù)組b的每一個元素的值(改進(jìn)方式)的每一個元素的值(改進(jìn)方式) System.out.println(ch); 483.8 3.8 應(yīng)用舉例應(yīng)用舉例 前面講過:可以使用前面講過:可以使用Scanner類類創(chuàng)建一個對象:創(chuàng)建一個對象: Scanner reader=new Scanner(System.i
43、n);reader對象對象調(diào)用調(diào)用下列方法,下列方法,讀取讀取用戶在用戶在命令行命令行(例如,(例如,MS-DOS窗口)窗口)輸入的各種輸入的各種基本類型數(shù)據(jù)基本類型數(shù)據(jù): nextBoolean()、 nextByte()、 nextShort()、 nextInt() nextLong()、nextFloat()、nextDouble()。 上述方法執(zhí)行時上述方法執(zhí)行時都會堵塞都會堵塞,程序等待用戶在命令行輸入數(shù),程序等待用戶在命令行輸入數(shù)據(jù)據(jù)回車確認(rèn)回車確認(rèn)。上述方法執(zhí)行時都會阻塞,等待用戶在命令。上述方法執(zhí)行時都會阻塞,等待用戶在命令行輸入數(shù)據(jù)回車確認(rèn)。如:行輸入數(shù)據(jù)回車確認(rèn)。如:49 例例2-3 import java.util.Scanner;public class Example2_3 public static void main (String args ) System.out.println(請輸入若干個數(shù),每輸入一個數(shù)回車確認(rèn)請輸入若干個數(shù),每輸入一個數(shù)回車確認(rèn)); System.out.println(最后輸入數(shù)字最后輸入數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 脊椎動物-五爬行綱課件
- 2025年安徽省職教高考《職業(yè)適應(yīng)性測試》考前沖刺模擬試題庫(附答案)
- 《JavaWeb應(yīng)用開發(fā)》考試復(fù)習(xí)題庫(含答案)
- 打鼾的科學(xué)原理課件
- 2025年朔州陶瓷職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 2025年新疆建設(shè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 《鋼鐵生產(chǎn)流程詳解》課件
- 滬教版(上海)七年級地理第一學(xué)期中國區(qū)域篇(上)2.5《廣西壯族自治區(qū)》聽課評課記錄
- 10kV配電站房項目建設(shè)的進(jìn)度控制與風(fēng)險管理
- 茅臺的陰陽合同
- 2025年個人土地承包合同樣本(2篇)
- (完整版)高考英語詞匯3500詞(精校版)
- 網(wǎng)絡(luò)貨運行業(yè)研究報告
- 人教版七年級英語上冊單元重難點易錯題Unit 2 單元話題完形填空練習(xí)(含答案)
- 2024-2025年突發(fā)緊急事故(急救護(hù)理學(xué))基礎(chǔ)知識考試題庫與答案
- 左心耳封堵術(shù)護(hù)理
- 2024年部編版八年級語文上冊電子課本(高清版)
- 合唱課程課件教學(xué)課件
- 2024-2025學(xué)年廣東省大灣區(qū)40校高二上學(xué)期聯(lián)考英語試題(含解析)
- 旅拍店兩人合作協(xié)議書范文
- 2024-2030年電炒鍋項目融資商業(yè)計劃書
評論
0/150
提交評論