版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章Java語(yǔ)句及其控制結(jié)構(gòu)主要任務(wù)了解Java程序的結(jié)構(gòu)了解Java類(lèi)的主要構(gòu)成成分學(xué)習(xí)使用各種語(yǔ)句結(jié)構(gòu)類(lèi)型本章主要內(nèi)容1.Java語(yǔ)句的類(lèi)型2.選擇語(yǔ)句3.循環(huán)語(yǔ)句4.跳轉(zhuǎn)語(yǔ)句3.1
Java語(yǔ)句的類(lèi)型3.1.1Java程序構(gòu)成3.1.2Java語(yǔ)句3.1.1
Java程序構(gòu)成例3.1
一個(gè)程序范例,說(shuō)明Java程序的構(gòu)成。import
java.applet.Applet;import
java.awt.*;public
class
GetSquare
extends
Applet{Label
label1;public
void
init()
{label1=new
Label("前30個(gè)數(shù)的平方");add(label1);}public
void
paint(Graphics
g)
{for
(int
i=0;
i<30;
i++)
{int
x=i%10,
y=i/10;g.drawString(String.valueOf((i+1)*
(i+1)),20+30*x,
50+25*y);}}}Java包引入語(yǔ)句類(lèi)聲明語(yǔ)句成員變量循環(huán)init方法paint方法類(lèi)體以上得出:Java源程序一般包括兩部分:Java包引入(如果有的話)部分和類(lèi)定義部分。類(lèi)定義由類(lèi)聲明語(yǔ)句和類(lèi)體組成。類(lèi)聲明語(yǔ)句用來(lái)說(shuō)明類(lèi)的名稱(chēng)、訪問(wèn)權(quán)限及類(lèi)的屬性。類(lèi)體也由兩部分組成:成員變量和成員方法。3.1.2 Java語(yǔ)句的種類(lèi)Java語(yǔ)句是Java標(biāo)識(shí)符的集合,由關(guān)鍵字、常量、變量和表達(dá)式構(gòu)成。簡(jiǎn)單的Java語(yǔ)句以分號(hào)“;”作為結(jié)束標(biāo)志,單獨(dú)的一個(gè)分號(hào)被看做一個(gè)空語(yǔ)句,空語(yǔ)句不做任何事情。復(fù)合結(jié)構(gòu)的Java語(yǔ)句以大括號(hào)“}”作為結(jié)束標(biāo)志。Java語(yǔ)句一般分為說(shuō)明性語(yǔ)句和操作性語(yǔ)句兩種類(lèi)型。1.說(shuō)明性語(yǔ)句Java的說(shuō)明性語(yǔ)句包含包和類(lèi)引入語(yǔ)句、聲明類(lèi)語(yǔ)句、聲明變量語(yǔ)句、聲明對(duì)象語(yǔ)句等。例如:import
java.applet.Applet;//包引入語(yǔ)句public
class
GetSquare
extends
Applet;//聲明類(lèi)語(yǔ)句2.操作性語(yǔ)句Java的操作性語(yǔ)句包含表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句、選擇語(yǔ)句和循環(huán)語(yǔ)句、跳轉(zhuǎn)語(yǔ)句等。Java規(guī)定所有的操作性語(yǔ)句必須放在成員方法中。下面介紹表達(dá)式語(yǔ)句與復(fù)合語(yǔ)句的構(gòu)成,其他操作性語(yǔ)句將分別在后面介紹。1).表達(dá)式語(yǔ)句在表達(dá)式后邊加上分號(hào)“;”,就是一個(gè)表達(dá)式語(yǔ)句。經(jīng)常使用的表達(dá)式語(yǔ)句有賦值語(yǔ)句和方法調(diào)用語(yǔ)句。表達(dá)式語(yǔ)句是最簡(jiǎn)單的語(yǔ)句,它們被順序執(zhí)行,完成相應(yīng)的操作。例如:int
k,
i=3,
j=4;k=i+j;System.out.println("k="+k);它們是三個(gè)表達(dá)式語(yǔ)句。2).復(fù)合語(yǔ)句復(fù)合語(yǔ)句也稱(chēng)為塊(block)語(yǔ)句,是包含在一對(duì)大括號(hào)“{}”中的任意語(yǔ)句序列。與其它語(yǔ)句用分號(hào)作結(jié)束符不同,復(fù)合語(yǔ)句右括號(hào)“}”后面不需要分號(hào)。
盡管復(fù)合語(yǔ)句含有任意多個(gè)語(yǔ)句,但從
語(yǔ)法上講,一個(gè)復(fù)合語(yǔ)句被看作一個(gè)簡(jiǎn)
單語(yǔ)句。例3.2
復(fù)合語(yǔ)句示例。class
Block
{public
static
void
main(String
args[])
{int
k,
i=3,
j=4;k=i+j;System.out.println("k="+k);{float
f;f=j+4.5F;i++;System.out.println("f="+f);}System.out.println("i="+i);}}3.2
選擇語(yǔ)句在復(fù)合語(yǔ)句中必須逐行執(zhí)行每條命令。能否改變程序執(zhí)行的順序呢?利用選擇語(yǔ)句結(jié)構(gòu)就可以根據(jù)條件控制程序流程,改變程序執(zhí)行的順序。3.2.1 if語(yǔ)句if語(yǔ)句的語(yǔ)法格式為:
if(條件表達(dá)式)s1語(yǔ)句;這是最簡(jiǎn)單的單分支結(jié)構(gòu)。條件表達(dá)式的值為true,就執(zhí)行s1語(yǔ)句,否則就忽略s1語(yǔ)句。s1語(yǔ)句可以是復(fù)合語(yǔ)句。3.2.2
if…else語(yǔ)句if語(yǔ)句通常都與else語(yǔ)句配套使用,形成二分支結(jié)構(gòu)。它的語(yǔ)法格式為:if(條件表達(dá)式)s1語(yǔ)句;elses2語(yǔ)句;當(dāng)條件表達(dá)式的值為true,就執(zhí)行s1語(yǔ)句,忽略else和s2語(yǔ)句;否則,條件表達(dá)式的值為false,程序忽略s1語(yǔ)句,執(zhí)行else后面的
s2語(yǔ)句。s1和s2都可以是復(fù)合語(yǔ)句。例3.3
比較兩個(gè)數(shù)的大小并按升序輸出class
C1
{public
static
void
main(String
args[])
{double
d1=23.4;double
d2=35.1;if(d2>=d1){
System.out.println(d1);System.out.println(d2);}else{System.out.println(d2);System.out.println(d1);}}}比較兩個(gè)數(shù)的大小并按升序輸出,運(yùn)行結(jié)果如圖所示:3.2.3
if…else復(fù)合結(jié)構(gòu)對(duì)于超過(guò)二分支選擇的情況,可以嵌
套使用if…else語(yǔ)句。它的語(yǔ)法格式為:if(條件表達(dá)式1)s1語(yǔ)句;else
if(條件表達(dá)式2)s2語(yǔ)句;elses3語(yǔ)句;例3.4
下面是一個(gè)用if...else語(yǔ)句構(gòu)造多分支程序的例子,判斷某一年是否為閏年。public
class
LeapYear
{public
static
void
main(String
args[])
{boolean
leap;int
year=1989;if
((year%4==0
&&
year%100!=0)||(year%400==0))
//方法1System.out.println(year+"
年是閏年");elseSystem.out.println(year+"
年不是閏年");year=2000;
//方法2if
(year%4!=0)leap=false;else
if
(year%100!=0)leap=true;else
if
(year%400!=0)leap=false;elseleap=true;if
(leap==true)System.out.println(year+"年是閏年");elseSystem.out.println(year+"年不是閏年");year=2050;//方法3if
(year%4==0){if
(year%100==0)
{if
(year%400==0)leap=true;elseleap=false;}elseleap=false;}elseleap=false;if
(leap==true)System.out.println(year+"年是閏年");elseSystem.out.println(year+"年不是閏年");}}結(jié)果如圖:運(yùn)行結(jié)果顯示:3.2.4 switch開(kāi)關(guān)語(yǔ)句開(kāi)關(guān)語(yǔ)句switch的語(yǔ)法格式為:switch(表達(dá)式){
case
常量1:語(yǔ)句1;break;case
常量2:語(yǔ)句2;break;......default:語(yǔ)句n;}使用開(kāi)關(guān)語(yǔ)句時(shí),注意以下幾點(diǎn):·case后面的常量必須是整數(shù)或字符型,而且不能有相同的值;·通常在每一個(gè)case中都應(yīng)使用break語(yǔ)句提供一個(gè)出口,使流程跳出開(kāi)關(guān)語(yǔ)句。否則,在第一個(gè)滿(mǎn)足條件case后面的所有語(yǔ)句都會(huì)被執(zhí)行,這種情況叫做落空。看下面分別加上和去掉break語(yǔ)句的例子。例3.5
switch語(yǔ)句的使用,有break語(yǔ)句public
class
W1
{public
static
void
main(String
args[])
{int
c=28;switch
(c<10?1:c<25?2:c<35?3:4)
{case
1:System.out.println("
"+c+"℃有點(diǎn)冷");break;case
2:System.out.println("
"+c+"℃正合適");break;case
3:System.out.println(""+c+"℃有點(diǎn)熱");break;default:System.out.println(""+c+"℃太熱了");}}}結(jié)果如圖:運(yùn)行結(jié)果顯示:例3.6
switch語(yǔ)句的使用,無(wú)break語(yǔ)句。public
class
W2
{public
static
void
main(String
args[])
{int
c=28;switch
(c<10?1:c<25?2:c<35?3:4)
{case
1:System.out.println(""+c+"℃有點(diǎn)冷");case
2:System.out.println(""+c+"℃正合適");case3:System.out.println(""+c+"℃有點(diǎn)熱");default:System.out.println(""+c+"℃太熱了");}}}switch語(yǔ)句的使用,無(wú)break語(yǔ)句。輸出結(jié)果如圖所示:3.3
循環(huán)語(yǔ)句Java中提供的循環(huán)語(yǔ)句有:☆確定次數(shù)循環(huán)(for)☆條件循環(huán)(while)☆先執(zhí)行后判定循環(huán)(do)3.3.1 for循環(huán)語(yǔ)句如果希望程序的一部分內(nèi)容按固定的次數(shù)重復(fù)執(zhí)行,通常可以使用for循環(huán)。
for循環(huán)采用一個(gè)計(jì)數(shù)器控制循環(huán)次數(shù),每循環(huán)一次計(jì)數(shù)器就加1,直到完成給定的循環(huán)次數(shù)為止。例3.7
該程序?qū)σ痪S數(shù)組中的每個(gè)元素賦值,然后按逆序輸出。public
class
A2
{public
static
void
main(String
args[])
{int
I;int
a[]=new
int[5];for
(i=0;
i<5;
i++)a[i]=i;for
(i=a.length-1;
i>=0;
i--)System.out.println("a["+i+"]
=
"+a[i]);}程序?qū)σ痪S數(shù)組中的每個(gè)元素賦值,然后按逆序輸出,結(jié)果如圖所示:例3.8
按5度的增量打印出一個(gè)從攝氏度到華氏度的轉(zhuǎn)換表。class
CtoF
{public
static
void
main
(String
args[])
{int
fahr,cels;System.out.println("攝氏度華氏度");for
(cels=0;
cels<=40;cels+=5){fahr=cels*9/5+32;System.out.println("
"+cels+""+fahr);}}}輸出結(jié)果如圖所示:以上得出:for循環(huán)的語(yǔ)法格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體其中表達(dá)式1指出計(jì)數(shù)器的初值,是一個(gè)賦值語(yǔ)句;表達(dá)式2指出循環(huán)結(jié)束條件,是一個(gè)邏輯表達(dá)式;表達(dá)式3指出計(jì)數(shù)器每次的增量,是一個(gè)賦值語(yǔ)句。3.3.2 while循環(huán)語(yǔ)句例3.9
下面這個(gè)程序可接受從鍵盤(pán)輸入的數(shù)字1、2、3,并顯示得到的獎(jiǎng)品;如果輸入其它數(shù)字或字符顯示“沒(méi)有獎(jiǎng)品給你!”。其中使用了開(kāi)關(guān)語(yǔ)句和while循環(huán)語(yǔ)句。輸出結(jié)果如圖所示。import
java.io.*;class
GetBonus
{public
static
void
main(String
args[])
throwsIOException
{char
ch;System.out.println("按1/2/3數(shù)字鍵可得大獎(jiǎng)!");System.out.println("按空格鍵后回車(chē)可退出循環(huán)操作.");while
((ch=(char)System.in.read())!='
')
{//跳過(guò)回車(chē)鍵System.in.skip(2);switch
(ch)
{case
'1':程序代碼:System.out.println("你得到一輛車(chē)!");break;case'2':System.out.println("你得到一臺(tái)彩電!");break;case'3':System.out.println("你得到一臺(tái)冰箱!");break;default:System.out.println("沒(méi)有獎(jiǎng)品給你!");}}}}以上得出:while循環(huán)的語(yǔ)法格式為:
while(條件表達(dá)式)循環(huán)體其中while是關(guān)鍵字。每次循環(huán)之前都要計(jì)算條件表達(dá)式,其值為true時(shí),就執(zhí)行一次循環(huán)體中的語(yǔ)句,然后再計(jì)算條件表達(dá)式,決定是否再次執(zhí)行循環(huán)體中的語(yǔ)句;如果條件表達(dá)式的值為false時(shí),就跳出循環(huán)體,執(zhí)行循環(huán)體下面的語(yǔ)句。3.3.3
do…while循環(huán)語(yǔ)句do…while循環(huán)與while循環(huán)相反,是先執(zhí)行循環(huán)體中的語(yǔ)句,再計(jì)算while后面的條件表達(dá)式,若條件表達(dá)式值為
false則跳出循環(huán),否則繼續(xù)下一輪循環(huán)。什么時(shí)候使用do…while循環(huán)呢?有些情況下,不管條件表達(dá)式的值是為true還是false,你都希望把指定的語(yǔ)句至少執(zhí)行一次,那么就應(yīng)使用do…while循環(huán),看下面的例子。例3.10
求1+2+…+100之和class
Sum
{public
static
void
main(String
args[])
{int
n=1;int
sum=0;do
{sum+=n++;}while
(n<=100);System.out.println("1+2+...+100="+sum);}}輸出結(jié)果:以上得出:歸納do…while循環(huán)的語(yǔ)法格式為:do
{循環(huán)體}while(條件表達(dá)式);其中do、while是關(guān)鍵字。程序首先執(zhí)行do下面的循環(huán)體,然后計(jì)算while后面條件表達(dá)式的值,如果其值為true,則重復(fù)執(zhí)行循環(huán)體,否則,就結(jié)束循環(huán)。3.3.4
循環(huán)使用循環(huán)語(yǔ)句例3.11
分別用while、do和for循環(huán)語(yǔ)句實(shí)現(xiàn)累計(jì)求和。輸出結(jié)果如圖所示。public
class
Sum1
{public
static
void
main(String
args[])
{int
n=10,
sum=0;while
(n>0)
{sum=0;for
(int
i=1;
i<=n;
i++)sum+=i;System.out.println("前"+n+"個(gè)數(shù)的總和為:
"+sum);n--;}}}程序代碼:3.3.5
循環(huán)語(yǔ)句小結(jié)一個(gè)循環(huán)一般應(yīng)包括四部分內(nèi)容:1.初始化部分:用來(lái)設(shè)置循環(huán)的一些初始條件,計(jì)數(shù)器清零等。2.循環(huán)體部分:這是反復(fù)被執(zhí)行的一段代碼,可以是單語(yǔ)句,也可以是復(fù)合語(yǔ)句。3.迭代部分:這是在當(dāng)前循環(huán)結(jié)束,下一次循環(huán)開(kāi)始時(shí)執(zhí)行的語(yǔ)句,常用來(lái)使計(jì)數(shù)器加1或減1。4.終止部分:通常是一個(gè)布爾表達(dá)式,每一次循環(huán)要對(duì)該表達(dá)式求值,以驗(yàn)證是否滿(mǎn)足循環(huán)終止條件。3.4
跳轉(zhuǎn)語(yǔ)句Java支持三種跳轉(zhuǎn)語(yǔ)句:☆break、☆continue☆return3.4.1
break語(yǔ)句例3.12 break語(yǔ)句的使用。輸出結(jié)果如圖所示。class
B
{public
static
void
main(String
args[])
{boolean
test=true;int
i=0;while
(test)
{i=i+2;System.out.println("i="+i);if
(i>=10)break;}System.out.println("i為"+i+"時(shí)循環(huán)結(jié)束");}}程序代碼:3.4.2
帶標(biāo)號(hào)的break語(yǔ)句標(biāo)號(hào)是標(biāo)記程序位置的標(biāo)識(shí)符。break語(yǔ)句只能跳轉(zhuǎn)到循環(huán)語(yǔ)句下面的第一條語(yǔ)句上,而帶標(biāo)號(hào)的break語(yǔ)句可直接跳轉(zhuǎn)到標(biāo)號(hào)處。它的語(yǔ)法格式為: 標(biāo)識(shí)符:...break
標(biāo)識(shí)符;例3.13
帶標(biāo)號(hào)的break語(yǔ)句的使用。輸出結(jié)果如圖:class
B1
{public
static
void
main(String
args[])
throws
java.io.IOException
{char
ch;lab1:
//此處為標(biāo)號(hào)標(biāo)識(shí)符for
(int
i=0;
i<4;
i++)for
(int
j=0;
j<4;
j++)
{ch=(char)System.in.read();System.in.skip(2);if
(ch=='b')break
lab1;//跳到標(biāo)號(hào)標(biāo)識(shí)符處
if
(ch=='c')
System.out.println("繼續(xù)");}System.out.println("結(jié)束兩重循環(huán)");}}程序代碼:3.4.3
continue語(yǔ)句continue語(yǔ)句只能用在循環(huán)結(jié)構(gòu)中,它跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,重新開(kāi)始下一輪循環(huán),從循環(huán)體第一個(gè)語(yǔ)句開(kāi)始執(zhí)行。例3.14
下面的程序可以輸出1~9中除6以外所有偶數(shù)的平方值。
輸出結(jié)果如圖:class
C2
{public
static
void
main(String
args[])
{for
(int
i=2;i<=9;i+=2)
{if
(i==6)continue;System.out.println(i+"
的平方="+i*i);}}}程序代碼:3.4.4
帶標(biāo)號(hào)的continue語(yǔ)句Java也支持帶標(biāo)號(hào)的continue語(yǔ)句,它通常用在嵌套循環(huán)的內(nèi)循環(huán)中,你可以用標(biāo)號(hào)標(biāo)出你想跳到哪一條語(yǔ)句繼續(xù)重復(fù)執(zhí)行程序。它的語(yǔ)法格式為:標(biāo)識(shí)符:...continue
標(biāo)識(shí)符;例3.15帶標(biāo)號(hào)的continue語(yǔ)句的使用。輸出結(jié)果如圖所示:class
C3{public
static
void
main(String
args[])
{lab1:for
(int
i=1;
i<=3;
i++)for
(int
j=1;
j<=3;
j++)
{System.out.println("i:"+i+"
j:"+j);if
(i+j>3)
{System.out.println("Continue");continue
lab1;}System.out.println("i="+i+"
j="+j);}}}程序代碼:3.4.5
return語(yǔ)句return語(yǔ)句用于方法的返回上,當(dāng)程序執(zhí)行到
return語(yǔ)句時(shí),終止當(dāng)前方法的執(zhí)行,返回到調(diào)用這個(gè)方法的語(yǔ)句。return語(yǔ)句通常位于一個(gè)方法體的最后一行,有帶參數(shù)和不帶參數(shù)兩種形式,帶參數(shù)形式的return語(yǔ)句退出該方法并返回一個(gè)值。帶參數(shù)的return語(yǔ)句格式為:return
表達(dá)式例3.17
帶參數(shù)的return語(yǔ)句的使用。輸出結(jié)果如圖所示
:class
CircleArea
{final
static
double
PI=3.14159;public
static
void
main(String
args[])
{double
r1=8.0,
r2=5.0;System.out.println("半徑為"+r1+"的圓面積="+area(r1));System.out.println("半徑為"+r2+"的圓面積="+area(r2));}static
double
area(double
r)
{return
(PI*r*r);}}程序代碼:習(xí)題1.分析下面的源程序的結(jié)構(gòu)和運(yùn)行結(jié)果。
class
CircleArea{final
static
double
PI=3.14159;public
static
void
main(String
args[])
{double
r1=8.0,
r2=5.0;System.out.println("半徑為"+r1+"的圓面積="+area(r1));System.out.println("半徑為"+r2+"的圓面積="+area(r2));}static
double
a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 虛擬現(xiàn)實(shí)設(shè)備保修協(xié)議
- 木質(zhì)教學(xué)器材制作合同
- 文具市場(chǎng)水電設(shè)施施工協(xié)議
- 吉林省四平市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版期中考試((上下)學(xué)期)試卷及答案
- 頸椎病分幾種類(lèi)型
- 浙江省舟山市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版競(jìng)賽題(上學(xué)期)試卷及答案
- 2024年房產(chǎn)權(quán)益抵押投資合同
- 班組長(zhǎng)安全培訓(xùn)資料
- 《誡子書(shū)》復(fù)習(xí)課課件2
- 2024年數(shù)據(jù)中心冬季散熱服務(wù)協(xié)議
- 良性陣發(fā)性眩暈的護(hù)理課件
- 五年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案
- 渣土消納專(zhuān)項(xiàng)方案樣本
- 少數(shù)民族朝鮮族民俗文化科普介紹
- 機(jī)構(gòu)改革工作方案
- 2023年-2024年《人民幣防偽及假貨幣》知識(shí)考試題庫(kù)及答案
- 《季風(fēng)環(huán)流》課件
- 工程進(jìn)度款申請(qǐng)表(完整)
- 學(xué)習(xí)型寢室申請(qǐng)表
- 液壓缸緩沖間隙參數(shù)計(jì)算
- 生產(chǎn)現(xiàn)場(chǎng)6S管理檢查評(píng)分表
評(píng)論
0/150
提交評(píng)論