版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
上節(jié)知識(shí)回顧1、移位運(yùn)算符:>><<2、JAVA語句3、條件分支語句:根據(jù)不同條件,執(zhí)行不同語句1)if…else(簡單的if條件、ifelse、ifelse嵌套)請(qǐng)思考1、設(shè)a=3,b=12計(jì)算下列表達(dá)式的值:--a%++b(++a)<<aa<10&&a>10?a:b2、
inta=9,b=-9,x=0,y=0,z=0;
x=a<<3;
y=a>>1;
z=b>>1;x,y,z的值是多少?思考題課后35頁作業(yè)題1:思路:x<0y=-1+2xx=0y=-1x>0y=-1+3xx的值從鍵盤輸入Scannerreader=newScanner(System.in);x=reader.nextDouble();最后程序打印出y的值:
System.out.println(y);if(x<0)y=-1+2*x;elseif(x==0)y=-1;elseif(x>0)y=-1+3*x;importjava.util.*;publicclassZuoYe3_1{publicstaticvoidmain(Stringargs[]){Scannerreader=newScanner(System.in);doubley=0,x=0;x=reader.nextDouble();if(x<0){y=-1+2*x;}elseif(x==0){y=-1;}elseif(x>0){y=-1+3*x;}System.out.println(y);}}請(qǐng)思考:對(duì)于if-else語句如果使用三元運(yùn)算符?:怎么簡化。if(a>0)
{
b=a;
}
else
{
b=-a;
}b=a>0?a:-a1、條件分支語句如果滿足某種條件,就進(jìn)行某種處理,否則就進(jìn)行另一種處理。if(boolean類型表達(dá)式)
{
語句或語句塊; }else
{
語句或語句塊; }如果if后表達(dá)式的值為true,則執(zhí)行if語句的復(fù)合語句;如果表達(dá)式的值為false,則執(zhí)行else后面的復(fù)合語句。1)、簡單的If條件語句例子publicclassGetif{//創(chuàng)建類
publicstaticvoidmain(Stringargs[]){//主方法
intx=45;//聲明int型變量x,并賦給初值
inty=12;//聲明int型變量y,并賦給初值
if(x>y){//判斷x是否大于y System.out.println("變量x大于變量y");//如果條件成立,輸出的信息
}
if(x<y){//判斷x是否小于y System.out.println("變量x小于變量y");//如果條件成立,輸出的信息
}}}2)、if-else語句例子publicclassGetifelse{ publicstaticvoidmain(Stringargs[]){//主方法
intmath=95;//聲明int型局部變量,并賦給初值95 intenglish=56;//聲明int型局部變量,并賦給初值56
if(math>60){//使用if語句判斷math是否大于60 System.out.println("數(shù)學(xué)及格了");//條件成立時(shí)輸出信息
}else{ System.out.println("數(shù)學(xué)沒有及格");//條件不成立輸出的信息
}
if(english>60){//判斷英語成績是否大于60 System.out.println("英語及格了");//條件成立輸出的信息
}else{ System.out.println("英語沒有及格");//條件不成立輸出的信息
} }}3)、嵌套的Ifelse語句例子publicclassGetTerm{//創(chuàng)建主類
publicstaticvoidmain(Stringargs[]){//主方法
intx=20;//聲明int型局部變量
if(x>30){//判斷變量x是否大于30 System.out.println("a的值大于30");//條件成立的輸出信息
}elseif(x>10){//判斷變量x是否大于10 System.out.println("a的值大于10,但小于30");//條件成立的輸出信息
}else
if(x>0){//判斷變量x是否大于0 System.out.println("a的值大于0,但小于10");//條件成立的輸出信息
}else{//當(dāng)以上條件都不成立時(shí),執(zhí)行的語句塊
System.out.println("a的值小于0");//輸出信息
} }}}嵌套的ifelse語句的例子publicclassifTest{publicstaticvoidmain(Stringargs[]){intintTestScore=82;chargrade;if(intTestScore>=90){Grade=‘A’}elseif(intTestScore>=80){grade=‘B’}elseif(intTestScore>=70){grade=‘C’}elseif(intTestScore>=60){grade=‘D’}else{grade=‘F’}System.out.println(“分?jǐn)?shù)=”+intTestScore);System.out.println(“評(píng)價(jià)=”+grade);}}例三:運(yùn)行例3-32、條件分支語句:switch語句switch語句是多分支的開關(guān)語句:它的形式如下switch(表達(dá)式){case常量值1:若干語句break;case常量值2:若干語句break;……case常量值n:若干語句break;default:若干語句}1、switch語句中表達(dá)式的值必須是整型或字符型2、case子句中的常量值1—n也必須是整型或字符型。,且所有case子句中的值應(yīng)是不同的;3、default子句是任選的;4、break語句用來在執(zhí)行完一個(gè)case分支后使程序跳出switch語句塊;switch語句首先計(jì)算表達(dá)式的值,如果表達(dá)式的值與某個(gè)case后面的常量值相同,就執(zhí)行該case里的語句,直到遇到break語句為止。若沒有任何常量值與表達(dá)式的值相同,則執(zhí)default后面的若干語句。switch表達(dá)式語句組1break;語句組2break;語句組nbreak;語句組break;…...const1const2constndefaultcaseswitch語句例子publicclassGetSwitch{//創(chuàng)建類
publicstaticvoidmain(Stringargs[]){//主方法
intweek=2;//定義int型變量week switch(week){//指定switch語句的表達(dá)式為變量week case1://定義case語句中的常量為1 System.out.println("Monday");//輸出信息
break; case2://定義case語句中的常量為2 System.out.println("Tuesday"); break; case3://定義case語句中的常量為3 System.out.println("Wednesday"); break; default://default語句
System.out.println("Sorry,Idon'tKnow"); } }}運(yùn)行例3-4思考題1、分析以下程序結(jié)構(gòu),并回答問題:if(x>0){System.out.println(“First”);}elseif(x>-5){System.out.println(“Second”);}else{System.out.println(“Third”);}請(qǐng)回答,當(dāng)X取值為多少,將輸出Second?2、請(qǐng)完成課后習(xí)題2、3、4、7、83、請(qǐng)用switch開關(guān)語句來編寫ifTest.java,并調(diào)試運(yùn)行。上節(jié)知識(shí)點(diǎn)回顧1、ifelse條件分支語句:問:if后的()內(nèi)的表達(dá)式的值是什么類型?2、switch開關(guān)語句問:switch語句的一般格式是怎樣的?問:switch后的()內(nèi)的表達(dá)式的值是什么類型?和case后面的常量值有什么關(guān)系?問:break的作用是什么?問:default的作用是什么?評(píng)講上機(jī)練習(xí)題目:計(jì)算電價(jià)、猜數(shù)字、成績等級(jí)認(rèn)定第三章控制語句
——循環(huán)語句和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
何中越思考題:求1+2+3+4+5=?如何快速求?intsum=0;sum=1+2+3+4+5;intsum=0;sum=1+2+3+4+5+6+7+8+….+100;JAVA語言中的各種循環(huán)whiledo-whilefor需要多次重復(fù)執(zhí)行一個(gè)或多個(gè)任務(wù)的問題考慮使用循環(huán)來解決19一般格式:執(zhí)行流程:表達(dá)式2循環(huán)體假真for表達(dá)式1表達(dá)式3for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
循環(huán)體語句
}for語句分號(hào)用于分隔for循環(huán)的三個(gè)表達(dá)式1、執(zhí)行表達(dá)式1,完成某一變量的初始化;2、判斷表達(dá)式2的值3、即判斷循環(huán)條件是否為真,若值為真則進(jìn)入循環(huán)體若為假跳出;在執(zhí)行完循環(huán)體以后緊接著計(jì)算表達(dá)式3,這里通常寫更新循環(huán)變量的賦值表達(dá)式,這樣一輪循環(huán)結(jié)束。4、第二輪循環(huán)從計(jì)算表達(dá)式2開始,轉(zhuǎn)回第2步重復(fù)執(zhí)行;循環(huán)變量賦初值循環(huán)條件循環(huán)變量增值i=1i<=5Truefor循環(huán)控制結(jié)構(gòu)(求和1+2+3+4+5)for(i=1;i<=5;i++)
sum=sum+i;sum=sum+ifor(i=1;i<=5;i++)
sum=sum+i;i=1i<=5sum=sum+iTruei++for循環(huán)控制結(jié)構(gòu)(求和1+2+3+4+5)for(i=1;i<=5;i++)
sum=sum+i;i=1i<=5sum=sum+iTruei=i+1for循環(huán)控制結(jié)構(gòu)(求和1+2+3+4+5)for(i=1;i<=5;i++)
sum=sum+i;i=1i<=5sum=sum+iTruei=i+1False退出循環(huán)for循環(huán)控制結(jié)構(gòu)(求和1+2+3+4+5)ints=0,i;
for(i=1;i<=5;i++)
{s=s+i;}
System.out.printf(“s=%d\n”,s);1+2+3+…+100把5改為100ints=0,i;
for(i=1;i<=100;i++)
{s=s+i;}
System.out.printf(“s=%d\n”,s);1+2+3+…+1001×2×3×…×100×for循環(huán)舉例編寫程序計(jì)算1+3+5+7+……+99publicclassOddSum{publicstaticvoidmain(String[]args){ longresult=0; for(inti=1;i<=99;i+=2){ result+=i; } System.out.println("result="+result);}}for循環(huán)舉例計(jì)算1!+2!+3!+4!......+10!publicclassTest{publicvoidstaticmain(Stringargs[]){ longresult=0; longf=1;
for(inti=1;i<=10;i++){ f=f*i; result+=f; } System.out.println(“result=“+result);}}for循環(huán)的表達(dá)式for循環(huán)中有三個(gè)表達(dá)式for語句中的各個(gè)表達(dá)式都可以省略分號(hào)分隔符不能省略for(<初始化循環(huán)變量>;<循環(huán)條件>;<修改循環(huán)變量的值>){<循環(huán)體語句>;}可省略不能省略省略表達(dá)式1for(;num<=10;num++){ System.out.printf("%d\n",num*2);}
相當(dāng)于省去了為循環(huán)變量賦初值,此時(shí)應(yīng)在for語句之前給循環(huán)變量賦初值intnum=0;省略表達(dá)式2
即不判斷循環(huán)條件,也就是認(rèn)為表達(dá)式2始終為真,這時(shí)應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則將成為死循環(huán)例如:for(i=1;;i++)sum=sum+i;它相當(dāng)于:
i=1;
while(1){sum=sum+1;i++;}if(i<=100)break;省略表達(dá)式3for(i=1;i<=100;)
{sum=sum+1;}
即省去修改循環(huán)變量的值,但此時(shí)應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán)i++;省略三個(gè)表達(dá)式for(;;){System.out.printf("這將一直進(jìn)行下去");Scannerreader=newScanner(System.in);i=reader.nextDouble();
即不為循環(huán)變量賦初值,不設(shè)置循環(huán)條件(認(rèn)為表達(dá)式2為真值),不修改循環(huán)變量的值,無終止地執(zhí)行循環(huán)體。此時(shí)應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會(huì)成為死循環(huán).if(i=='X'||i=='x') break;}不建議使用這些變形結(jié)構(gòu)!上節(jié)回顧whiledo-whilefor循環(huán)結(jié)構(gòu)的特點(diǎn)是,在給定條件成立時(shí),重復(fù)執(zhí)行某程序段,直到條件不成立為止34一般格式:執(zhí)行流程:表達(dá)式2循環(huán)體假(0)真(非0)for表達(dá)式1表達(dá)式3for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
循環(huán)體語句
}for語句分號(hào)用于分隔for循環(huán)的三個(gè)表達(dá)式1、計(jì)算表達(dá)式1的值,通常為循環(huán)變量賦初值;2、計(jì)算表達(dá)式2的值3、即判斷循環(huán)條件是否為真,若值為真則執(zhí)行循環(huán)體一次,否則跳出循環(huán);4、計(jì)算表達(dá)式3的值,這里通常寫更新循環(huán)變量的賦值表達(dá)式,然后轉(zhuǎn)回第2步重復(fù)執(zhí)行;循環(huán)變量賦初值循環(huán)條件循環(huán)變量增值已知2000年我國的人口是12.66億,如果在以后的5年內(nèi)人口每年平均增長1.07%,問到2005年我國的人口是多少?P=12.66:R=0.0107P=P*(1+R);for(i=;i<=
;i++)20012005已知2000年我國的人口是12.66億,如果在以后每年平均增長1.07%,問多少年后我國的人口達(dá)到13億?思考必須循環(huán)次數(shù)已知!程序的關(guān)鍵代碼如下:Example1
重復(fù)兩次將洗發(fā)水抹在濕頭發(fā)上搓洗出泡沫清洗Example2在杯子里倒半斤牛奶向杯子里加2湯匙巧克力汁攪拌重復(fù)進(jìn)行攪拌,直到牛奶和巧克力汁充分混合for循環(huán)來實(shí)現(xiàn)知道循環(huán)次數(shù)?知道循環(huán)結(jié)束的條件While循環(huán)Do…while循環(huán)和While(p<=13){}P=P*(1+R);n=n+1;p=12.66:;r=0.0107:;n=0;已知2000年我國的人口是12.66億,如果在以后每年平均增長1.07%,問多少年后我國的人口達(dá)到13億?思考while語句1.while循環(huán)語句的形式
while(表達(dá)式)循環(huán)語句先判斷條件,后執(zhí)行語句表達(dá)式循環(huán)體FT2.執(zhí)行過程:跳出循環(huán)此處無;計(jì)算表達(dá)式的值,當(dāng)值為真時(shí),執(zhí)行循環(huán)體語句,一旦條件為假,就停止執(zhí)行循環(huán)體。如果條件在開始時(shí)就為假,那么不執(zhí)行循環(huán)體語句直接退出循環(huán)。
工作原理while循環(huán)
規(guī)則1:[<初始化>]while(循環(huán)條件){<循環(huán)體>}循環(huán)條件中使用的變量需要經(jīng)過初始化while循環(huán)
規(guī)則2:while(index<100){......
index++;}while循環(huán)主體中的語句必須修改循環(huán)條件的值,否則會(huì)形成死循環(huán)while(1)真41例1:求i=1,sum=0i<=100?sum=sum+ii=i+1FTinti=1,sum=0;
while(i<=100){sum=sum+i;i++;}
System.out.printf("%d",sum);注意:循環(huán)體如果包含一個(gè)以上的語句,應(yīng)該用花括弧括起來,以復(fù)合語句形式出現(xiàn).累加和sum變量需置初值0累乘積sum變量需置初值1while語句intnum=1,result;while(num<=10){result=num*10;System.ou.printf("%d×10=
%d\n",num,result);num++;}while循環(huán)示例內(nèi)存numresult1null102輸出:1×10=102×10=203×10=304×10=405×10=506×10=607×10=708×10=809×10=9010×10=100111001.do-while循環(huán)語句的形式
do
循環(huán)體
while(條件表達(dá)式);
先執(zhí)行語句,后判斷條件
2.執(zhí)行過程此處有;表達(dá)式語句FT跳出循環(huán)do-while語句它先執(zhí)行循環(huán)體中的語句,然后再判斷條件是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。
工作原理表達(dá)式=0?語句零非零i<=100?sum=sum+ii=i+1i=1例:用do-while型循環(huán)求:inti=1,sum=0;do{sum=sum+i;i++;}while(i<=100);System.ou.printf("%d",sum);do-while語句【例】while和do-while循環(huán)的比較。intsum=0;
Scannerreader=newScanner(System.in);inti=reader.nextint();
while(i<=10){sum=sum+i;i++;}System.out.printf("sum=%d\n",sum);?intsum=0;
Scannerreader=newScanner(System.in);inti=reader.nextint();
do
{sum=sum+i;i++;}while(i<=10);
System.out.printf("sum=%d\n",sum);運(yùn)行結(jié)果:1↙sum=55
再運(yùn)行一次:11↙sum=0運(yùn)行結(jié)果:1↙sum=55
再運(yùn)行一次:11↙sum=11do-while語句【例】while和do-while循環(huán)的比較publicclassCycle{ publicstaticvoidmain(Stringargs[]){ inta=100;//聲明int型變量a并賦初值100
while(a==60)//指定進(jìn)入循環(huán)體條件
{System.out.println("ok1");//while語句循環(huán)體
a--;} intb=100;//聲明int型變量b并賦初值100
do{System.out.println("ok2");//do…while語句循環(huán)體
b--;}while(b==60);//指定循環(huán)結(jié)束條件
}}比較while和do-while循環(huán)while(循環(huán)條件){循環(huán)體;}do{
循環(huán)體;}while(循環(huán)條件);do-while循環(huán)是先執(zhí)行后判斷,所以,即使開始條件為假,循環(huán)體也至少會(huì)被執(zhí)行一次。while循環(huán)是先判斷后執(zhí)行,所以,如果條件為假,則循環(huán)體一次也不會(huì)被執(zhí)行。
比較
while和do-while循環(huán)的工作原理循環(huán)語句——總結(jié)用上述三種循環(huán)語句求
while語句:n=1;s=1;while(n<=100){s=s*n;n++;}
n=1;s=1;do{s=s*n;n++;}while(n<=100);
do-while語句:for(n=1,s=1;n<=100;n++){s=s*n;}
for語句:break和continue語句break語句break語句可以用來從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán)(終止循環(huán)),接著執(zhí)行循環(huán)下面的語句一般形式:break;功能:在switch語句中,結(jié)束case分支,跳出switch語句在循環(huán)語句,終止并跳出循環(huán)體說明:break只能終止并跳出最近一層的結(jié)構(gòu)break只能用于循環(huán)語句和switch語句中50switch表達(dá)式語句組1break;語句組2break;語句組nbreak;語句組break;…...const1const2constndefaultcasebreak和continue語句表達(dá)式……break;……假真while表達(dá)式2……break;…...假真for表達(dá)式1表達(dá)式3break語句break語句跳出for循環(huán)for(;;){printf("這將一直進(jìn)行下去");i=getchar();
if(i=='X'||i=='x')
break;}跳出while循環(huán)while(1){
if(x==10)
break;}跳出do-while循環(huán)do{
if(x==10)
break;}while(x<15);continue語句continue語句作用為暫止中止本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進(jìn)行下一次循環(huán).一般形式:continue;功能:提前退出本次循環(huán)說明:僅用于循環(huán)語句中continue語句僅結(jié)束本次循環(huán)break語句則是結(jié)束整個(gè)循環(huán)過程。break和continue語句continue語句
while(…){…………continue;…………}while(…){…………break;…………}跳出整個(gè)循環(huán)繼續(xù)下一次循環(huán)請(qǐng)看例題3-7真do……continue;…...表達(dá)式假while表達(dá)式……continue;……假真while表達(dá)式2……continue;…...假真for表達(dá)式1表達(dá)式3continue語句例
把100~200之間的不能被3整除的數(shù)輸出。intn;
for(n=100;n<=200;n++)
{if(n%3==0)
{continue;}
System.outprintf("%d″,n);
}
continue語句示例1intn;
for(n=100;n<=200;n++)
{if(n%3!=0)
System.outprintf("%d″,n);
}
例求輸入的十個(gè)整數(shù)中正整數(shù)的個(gè)數(shù)及其和與平均值inti,num=0,a;floatsum=0;for(i=0;i<10;i++){Scannerreader=newScanner(System.in);a=reader.nextInt();if(a<=0)
continue;num++;sum+=a;}System.out.printf("%dplusinteger'ssum:%6.0f\n",num,sum);System.out.printf("Meanvalue:%6.2f\n",sum/num);}continue語句示例2在窗體上逐個(gè)輸出10個(gè)星號(hào)System.out.print(“*”);for(j=1;j<=10;j++)在窗體上逐個(gè)輸出10行10列星號(hào)輸出一行星號(hào)for(i=1;i<=10;i++)System.out.printf(“\n”);{}思考共產(chǎn)生多少個(gè)星號(hào)?這個(gè)二維圖形中i,j分別表示什么?i取1時(shí),j取了哪些值?111213141516171819110外循環(huán)執(zhí)行一次內(nèi)循環(huán)執(zhí)行一遍循環(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))可以互相嵌套。下面幾種都是合法的形式:(1)
while()(2)do(3)for(;;){…{…{while()dofor(;;){…}{…}{…}}while();}}while();
(4)
while()(5)for(;;)(6)do{…{…{…do{…}while()for(;;){}whi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 備考會(huì)計(jì)基礎(chǔ)秀課件推
- 養(yǎng)老院老人康復(fù)理療師職業(yè)發(fā)展規(guī)劃制度
- 增收節(jié)支課件
- 2024年挖掘機(jī)租賃合同范本(含應(yīng)急維修服務(wù))3篇
- 2024年度生態(tài)園林樹木補(bǔ)種與養(yǎng)護(hù)管理合同3篇
- 大年夜學(xué)期末財(cái)務(wù)學(xué)課件期末溫習(xí)資料試卷
- 《肝癌與其他》課件
- 2024年版:工程機(jī)械短期租賃協(xié)議
- 《在大多數(shù)廣告中》課件
- 2025年四川貨運(yùn)從業(yè)考試試題及答案詳解
- 高一物理必修一課程綱要Word版
- 設(shè)備單機(jī)試運(yùn)轉(zhuǎn)記錄
- 2020年領(lǐng)導(dǎo)干部個(gè)人有關(guān)事項(xiàng)報(bào)告表
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)《年 月 日》的認(rèn)識(shí)-文檔資料
- 一年級(jí)童謠誦讀計(jì)劃
- 全風(fēng)險(xiǎn)全流程外包概述
- 培養(yǎng)研究生的一點(diǎn)經(jīng)驗(yàn)和體會(huì).PPT
- 變電站電氣工程質(zhì)量監(jiān)理旁站點(diǎn)及旁站監(jiān)理記錄
- 消防產(chǎn)品入場(chǎng)核查清單
- 醫(yī)用護(hù)理墊備案
- 地球的地殼元素豐度列表
評(píng)論
0/150
提交評(píng)論