第三章控制語句 2_第1頁
第三章控制語句 2_第2頁
第三章控制語句 2_第3頁
第三章控制語句 2_第4頁
第三章控制語句 2_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java流程控制語句回顧Java語言中對于定義標(biāo)示符有哪些基本要求?(遵循哪些規(guī)范?)Java內(nèi)置了幾種基本數(shù)據(jù)類型?它們分別是什么?簡述Java中的常用運(yùn)算符。本講重點(diǎn)分支(選擇)語句循環(huán)語句跳轉(zhuǎn)(break,continue)語句流程控制概述流程控制分為三種基本結(jié)構(gòu):順序結(jié)構(gòu):按照命令,從上到下,從左到右執(zhí)行語句分支(選擇)結(jié)構(gòu):根據(jù)條件,執(zhí)行不同的語句,可以得到不同的結(jié)果。循環(huán)結(jié)構(gòu):指對于一些重復(fù)執(zhí)行的語句,用戶指定條件或次數(shù),由機(jī)器自動識別執(zhí)行。分支語句分支語句根據(jù)一定的條件,有選擇地執(zhí)行或跳過特定的語句Java分支語句分類1、if-else語句2、switch語句

1、若令狐沖的Java考試成績大于90分,師父就獎勵他一本武功秘笈分支語句——if-else語句(1)使用if條件結(jié)構(gòu)可以解決if條件結(jié)構(gòu)是根據(jù)條件判斷之后再做處理if(條件){//語句}if(令狐沖Java成績>90){

師父獎勵令狐沖;}結(jié)合問題1基本的if條件結(jié)構(gòu)表達(dá)式語句假真演示示例1:使用基本if條件結(jié)構(gòu)分支語句——if-else語句(1)

2、令狐沖Java成績大于90分,而且音樂成績大于80分,師父獎勵他;或者Java成績等于100分,音樂成績大于70分,師父也可以獎勵他分析:怎樣把多個條件連接起來?使用邏輯運(yùn)算符運(yùn)算符表達(dá)式說明&&條件1&&

條件2僅僅兩個條件同時為真,結(jié)果為真||條件1||條件2只要兩個條件有一個為真,結(jié)果為真!!條件條件為真時,結(jié)果為假條件為假時,結(jié)果為真問題2的條件如何編寫分支語句——if-else語句(1)多使用小括號()控制優(yōu)先級score1>90&&score2>80||score1==100&&score2>70運(yùn)算符的優(yōu)先級:最高的優(yōu)先級:小括號,即()最低的優(yōu)先級:賦值運(yùn)算符,即=優(yōu)先級順序:!>算術(shù)運(yùn)算符>比較運(yùn)算符>&&>||publicclassLh02

{publicstaticvoidmain(String[]args){intscore1=100;//令狐沖的語文成績

int

score2=72;//令狐沖的歷史成績

if((score1>90&&score2>80)

||(score1==100&&score2>70)){System.out.println("師父說:不錯,給你《獨(dú)孤九劍》劍譜");}}}?分支語句——if-else語句(2)

3、如果令狐沖考試成績大于90分,師父就獎勵他《獨(dú)孤九劍》,否則師父就罰他上思過崖閉關(guān)思過使用兩個基本if條件結(jié)構(gòu)使用if-else條件結(jié)構(gòu)實(shí)現(xiàn)if(score>90){System.out.println("師父說:不錯,給你《獨(dú)孤九劍》劍譜");}if(score<=90){System.out.println("師父說:不孝徒,上思過崖閉關(guān)思過去吧");}分支語句——if-else語句(2)

if-else條件結(jié)構(gòu)if(條件){//語句1}else{//語句2}if(令狐沖考試成績>90){

師父獎勵令狐沖;}else{

師父罰他閉關(guān)思過;}結(jié)合問題4真表達(dá)式語句1假語句2使用if-else條件結(jié)構(gòu)解決問題3publicclassLh03{publicstaticvoidmain(String[]args){intscore=89;//令狐沖的語文成績

if(score>90){ System.out.println("師父說:不錯,給你《獨(dú)孤九劍》劍譜");}else{ System.out.println("師父說:不孝徒,上思過崖閉關(guān)思過去吧");}}}演示示例3:使用if-else結(jié)構(gòu)分支語句——if-else語句(2)分支語句——if-else語句(3)

4.

對令狐沖的結(jié)業(yè)考試成績評測成績>=90:優(yōu)秀成績>=80:良好 成績>=60:中等成績<60:差使用多重if結(jié)構(gòu)多重if結(jié)構(gòu)就是在else部分中還包含其他if塊分支語句——if-else語句(3)if

(條件){//語句

}

elseif

(條件)

{//語句

}else

{//語句

}可以有多個可以省略多重if結(jié)構(gòu)假真真假表達(dá)式1語句1表達(dá)式2語句2語句3分支語句——if-else語句(3)使用多重if結(jié)構(gòu)解決問題4

int

score=70;//考試成績

if(score>=90){

System.out.println("優(yōu)秀");}

elseif(score>=80){

System.out.println("良好");}

elseif(score>=60){

System.out.println("中等");}

else{

System.out.println("差");}大于等于90分大于等于60分,小于80分小于60分大于等于80分,小于90分演示示例5:使用多重if結(jié)構(gòu)分支語句——switch語句

5、令狐沖參加比武大會如果獲得第一名,將出任武林盟主如果獲得第二名,將出任武當(dāng)掌門如果獲得第三名,將出任峨嵋掌門否則,將被逐出師門使用if條件結(jié)構(gòu)如何實(shí)現(xiàn)?

代碼publicclassLh05{publicstaticvoidmain(String[]args){intorder=2;//名次

if(order==1){System.out.println("天下第一,唯吾獨(dú)尊,作武林盟主吧??!"); }elseif(order==2){System.out.println("以一招之差惜敗,你就暫且作個武當(dāng)掌門吧??!"); }elseif(order==3){System.out.println("就做我們的峨眉掌門吧!");

}else{System.out.println("辛苦了大半天,什么名次也沒有拿到。。"); }}}更好的解決辦法:使用switch結(jié)構(gòu)switch(表達(dá)式){

case

常量1:

語句;

break;

case

常量2:

語句;

break;

default:

語句;}switch結(jié)構(gòu)分支語句——什么是switch結(jié)構(gòu)計算表達(dá)式的值如果等于常量1如果等于常量2如果沒有找到匹配的值使用switch結(jié)構(gòu)解決問題5分支語句——如何使用switch結(jié)構(gòu)intorder=1;switch(order){

case

1:System.out.println("出任武林盟主");

break;

case2:System.out.println("出任武當(dāng)掌門");

break;

case3:System.out.println("出任峨嵋掌門");

break;

default:System.out.println("被逐出師門");}第一名的情況下第二名的情況下第三名的情況下其他情況下演示示例6:使用switch結(jié)構(gòu)注意1:如果每個case執(zhí)行完后跳出,需要在每個case后break;注意2:case后面的常量必須各不相同注意3:switch后面小括號中表達(dá)式的值必須是整型或字符型分支語句——比較switch和多重if結(jié)構(gòu)相同點(diǎn)不同點(diǎn)switch多重if都可以實(shí)現(xiàn)多分支結(jié)構(gòu)只能處理等值的條件判斷,且條件是整型變量或字符變量的等值判斷處理在else部分還包含其它if結(jié)構(gòu),特別適合某個變量處于某個區(qū)間時的情況小結(jié):條件控制switch(表達(dá)式){

case

常量1:

語句;

break;

case

常量2:

語句;

break;

default:

語句;}if

(條件){

滿足條件要執(zhí)行的代碼}if

(條件){

滿足條件要執(zhí)行的代碼}else{ 不滿足條件要執(zhí)行的代碼}if

(條件){

語句1}elseif(條件){ 語句2}else{ 語句3}1、輸入你兜里的錢數(shù),如果大于100,輸出:“啊,今天吃大餐吧!”,否則輸出:“就隨便吃點(diǎn)吧”2、要求用戶輸入兩個數(shù)a、b,如果a能被b整除或a加b大于1000,則輸出a,否則輸出b小結(jié)練習(xí)小結(jié)練習(xí)3.一年有四個季節(jié)(3、4、5月是春季,6、7、8月是夏季,9、10、11月是秋季,12、1、2是冬季),根據(jù)輸入的年份判斷是什么季節(jié)4.張三為他的手機(jī)設(shè)定了自動撥號按1:撥爸爸的號按2:撥媽媽的號按3:撥爺爺?shù)奶柊?:撥奶奶的號編程實(shí)現(xiàn)此業(yè)務(wù)循環(huán)生活中的循環(huán)打印50份試卷10000米賽跑旋轉(zhuǎn)的車輪循環(huán)結(jié)構(gòu)的特點(diǎn)循環(huán)結(jié)構(gòu)

循環(huán)條件循環(huán)操作鍥而不舍地學(xué)習(xí)循環(huán)循環(huán)語句是用來控制那些根據(jù)運(yùn)行期情況需要反復(fù)執(zhí)行的語句系列。Java中的循環(huán)語句whiledo/whilefor什么while循環(huán)特點(diǎn):先判斷,再執(zhí)行while(循環(huán)條件

){

循環(huán)操作}符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出循環(huán)中被重復(fù)執(zhí)行的操作int

i=1;while(i<=30

){

System.out.println("我能行!"); i++;}循環(huán)操作循環(huán)條件真假3、如何用程序描述下面這個故事呢?為了備戰(zhàn),令狐沖鍥而不舍地練習(xí),盈盈嚴(yán)格把關(guān)…“盈盈,怎么樣,可以了嗎?”“不行,高音部分唱得還不是很好,鋼琴還要繼續(xù)練??!”沒有聽到“很棒”的評價,看來革命尚未成功,令狐沖并不氣餒:早上5點(diǎn)練聲,上午練鋼琴,下午到聲樂老師家練習(xí)唱歌,晚上練習(xí)舞蹈基本功。

循環(huán)條件

循環(huán)操作使用while循環(huán)的步驟1、分析循環(huán)條件和循環(huán)操作2、套用while語法寫出代碼3、檢查循環(huán)是否能夠退出怎樣使用while循環(huán)3-1怎樣使用while循環(huán)3-2System.out.print("表演得怎么樣

?(y/n):");answer=input.next();while(!answer.equals("y"))

{ System.out.println("早上5點(diǎn)開始練聲

!"); System.out.println("上午練習(xí)鋼琴

!"); System.out.println("下午到聲樂老師家練習(xí)唱歌

!");

System.out.println("晚上練習(xí)舞蹈基本功!");

System.out.print("表演得怎樣

?(y/n):"); answer=input.next();}System.out.println("圓滿完成

!");循環(huán)條件循環(huán)操作比較兩個String類型的值是否相等演示示例編碼規(guī)范:縮進(jìn)、換行怎樣使用while循環(huán)3-34、錄入班級人數(shù)和學(xué)員成績,計算班級學(xué)員的平均成績循環(huán)條件:目前錄入的成績數(shù)目小于總?cè)藬?shù)循環(huán)操作:錄入學(xué)生成績,并累加求和

演示示例4:使用while循環(huán)結(jié)構(gòu)

while(i<=stuNum){System.out.print("請輸入學(xué)號"+i+"的成績:");score=input.nextInt();sum=sum+score;i++;}avg=sum/stuNum; while循環(huán)常見問題3-1/*打印4次“歡迎你,親愛的學(xué)員”*/publicstaticvoidmain(String[]args){ inti=0;

while(i<4){ System.out.println("歡迎你親愛的學(xué)員");

i++; }}

永遠(yuǎn)都不會退出的循環(huán)稱為死循環(huán)循環(huán)一直執(zhí)行,不會退出,哪里出錯了?條件改變while循環(huán)常見問題3-2/*打印4次“歡迎新學(xué)員”*/publicstaticvoidmain(String[]args){ inti=1;

while(i<4){System.out.println("歡迎新學(xué)員");i++; }}i<=4只打印了三次,哪里出錯了?

注意檢查循環(huán)次數(shù)是否滿足需求while循環(huán)常見問題3-3/*打印4次“歡迎新學(xué)員”*/publicstaticvoidmain(String[]args){inti=0;while(i>5){System.out.println("歡迎新學(xué)員");i++;}}

注意:如果一開始條件就不滿足,while循環(huán)一次都不執(zhí)行

i<5一次都沒有打印,哪里出錯了?do-while循環(huán)5、如何用程序講述下面的故事?苦練半年,眼看大賽在即,盈盈提議:彩排一次,如果很令人滿意,以后就不用彩排了,否則每天都要彩排,直到現(xiàn)場表現(xiàn)讓她滿意為止!他能否用動聽的歌聲震撼盈盈,用美妙的鋼琴聲博得贊賞呢?……do{

循環(huán)操作}while(循環(huán)條件);while(循環(huán)條件){

循環(huán)操作}while循環(huán)先判斷,再執(zhí)行不適合描述此故事?什么是do-while循環(huán)do{

循環(huán)操作}while(循環(huán)條件

);先執(zhí)行一遍循環(huán)操作符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出特點(diǎn):先執(zhí)行,再判斷循環(huán)操作循環(huán)條件真假怎樣使用do-while循環(huán)2-1do{ System.out.println("唱歌

!"); System.out.println("演奏肖邦鋼琴曲

!"); System.out.print("可以了嗎

?(y/n):"); answer=input.next();}while(!answer.equals("y")

);System.out.println("大功告成

!");循環(huán)條件先執(zhí)行一遍循環(huán)操作演示示例5:怎樣使用do-while循環(huán)2-26、連續(xù)錄入學(xué)生姓名,輸入“q”則系統(tǒng)退出Stringname;Scannerinput=newScanner(System.in);do{ System.out.print("請輸入學(xué)生姓名:"); name=input.next();}while

(!name.equals("q"));System.out.println("程序結(jié)束");演示示例6:while循環(huán)和do-while循環(huán)的區(qū)別語法不同初始情況不滿足循環(huán)條件時while循環(huán)一次都不會執(zhí)行do-while循環(huán)不管任何情況都至少執(zhí)行一次do{

循環(huán)操作}while(循環(huán)條件);while

(循環(huán)條件){

循環(huán)操作}先判斷,再執(zhí)行先執(zhí)行,再判斷比較while和do-while為什么使用for循環(huán)

inti=0;while(i<100){System.out.println("我最棒");i++;}

for(inti=0;i<100;i++){

System.out.println("我最棒");}for比while更簡潔while循環(huán)結(jié)構(gòu)for循環(huán)結(jié)構(gòu)for循環(huán)的語法和執(zhí)行順序什么是for循環(huán)for(

;

;

){

;}條件為true

循環(huán)體被執(zhí)行for

(

inti=0

;

i<100;

i++

){System.out.println("我最棒");}代碼規(guī)范:格式對齊、代碼的縮進(jìn)表達(dá)式1表達(dá)式2表達(dá)式3循環(huán)操作參數(shù)初始化條件判斷更新循環(huán)變量1243如何使用for循環(huán)3-11、循環(huán)錄入某學(xué)員的5門課成績,計算平均分循環(huán)次數(shù):5循環(huán)條件:循環(huán)的次數(shù)不足5,繼續(xù)循環(huán)循環(huán)操作:錄入成績,計算成績之和使用for循環(huán)結(jié)構(gòu)的步驟1、分析循環(huán)條件和循環(huán)操作2、套用for語法寫出代碼3、檢查循環(huán)是否能夠退出結(jié)合問題1如何使用for循環(huán)3-2//省略聲明變量

for(inti=0;i<5;i++){

//循環(huán)5次錄入5門課成績

System.out.print("請輸入5門功課中第"+(i+1)+"門課的成績:");

score=input.nextInt();

sum=sum+score;

}

avg=sum/5;

//計算平均分

System.out.println(name+"的平均分是:"+avg);初始值:i=0循環(huán)條件:i<5循環(huán)變量改變:i++循環(huán)操作執(zhí)行5次演示示例1:使用for循環(huán)結(jié)構(gòu)如何使用for循環(huán)3-32、輸出如圖所示加法表for(inti=0,j=val;i<=val;i++,j--){System.out.println(i+"+"+j+"="+(i+j));}1、循環(huán)初始化:i=0;j=輸入值2、循環(huán)條件:i<=輸入值3、循環(huán)操作:計算i+j4、循環(huán)變量的改變:i++,j--完整代碼表達(dá)式3可以是用“,”隔開的多個表達(dá)式,運(yùn)算順序從左到右表達(dá)式1中可以聲明多個同一類型的值并賦值,用“,”隔開演示示例2:使用for循環(huán)結(jié)構(gòu)for循環(huán)常見問題4-1for(;i<10;i++){

System.out.println("這是"+i);}inti=0;編譯錯誤:變量i沒有初始化for(<初始化循環(huán)變量>;<循環(huán)條件>;<修改循環(huán)變量的值>){

<循環(huán)體語句>;}不能省略可省略表達(dá)式1省略,循環(huán)變量的初始值在for語句之前由賦值語句取得for循環(huán)常見問題4-2for(inti=0;;i++){

System.out.println("這是"+i);}編譯正確,但是缺少循環(huán)條件,造成死循環(huán)for循環(huán)常見問題4-3for(inti=0;i<10;){

System.out.println("這是"+i);

}i++;省略表達(dá)式3,在循環(huán)體內(nèi)應(yīng)設(shè)法改變循環(huán)變量的值以結(jié)束循環(huán)編譯通過,但是循環(huán)變量的值無變化,造成死循環(huán)for循環(huán)常見問題4-4for(;;){

System.out.println("這是測試");}表達(dá)式全省略,無條件判斷,循環(huán)變量無改變,應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會造成死循環(huán)小結(jié)1求1~100之間不能被3整除的數(shù)之和(使用for循環(huán)結(jié)構(gòu))為什么需要break語句inti=2;switch(i){case1:System.out.println("星期一");

break;case2:System.out.println("星期二");

break;}//其他語句遇到break,立即跳出switch語句回顧break用于switch語句描述4000米長跑比賽for(inti=0;i<10;i++){跑400米;}

if(不能堅持){break;//退出比賽}第8圈,快累死了…我要退出…什么是break語句break:改變程序控制流用于do-while、while、for中時,可跳出循環(huán)而執(zhí)行循環(huán)后面的語句while(…){………………

break;………………}跳出整個循環(huán)break通常在循環(huán)中與條件語句一起使用如何使用break語句2-13、循環(huán)錄入某學(xué)生5門課的成績并計算平均分,如果某分?jǐn)?shù)錄入為負(fù),停止錄入并提示錄入錯誤循環(huán)錄入成績,判斷錄入正確性:錄入錯誤,使用break語句立刻跳出循環(huán);否則,累加求和演示示例3:使用break語句如何使用break語句2-2……for(inti=0;i<5;i++){//循環(huán)5次錄入5門課成績System.out.print("請輸入5門功課中第"+(i+1)+"門課的成績:");score=input.nextInt();//從控制臺接收數(shù)據(jù)

if(score<0){wrong=false;//出錯標(biāo)識

break;//退出循環(huán)}sum=sum+score;}…循環(huán)外的語句…對錄入的分?jǐn)?shù)進(jìn)行判斷,如果小于0,標(biāo)記出錯狀態(tài),并立即跳出整個for循環(huán)1~10之間的整數(shù)相加,得到累加值大于20的當(dāng)前數(shù)1、使用循環(huán)進(jìn)行累加,從1到102、判斷累加值是否大于203、如果大于20,則跳出循環(huán),并打印當(dāng)前值//定義一個變量,進(jìn)行累加

intsum=0;

for(inti=1;i<=10;i++){sum=sum+i;

if(sum>

20

){

System.out.print("當(dāng)前數(shù)是:"+i);

break;

}}

小結(jié)2演示運(yùn)行效果為什么需要continue語句4、循環(huán)錄入Java課的學(xué)生成績,統(tǒng)計分?jǐn)?shù)大于等于80分的學(xué)生比例1、通過循環(huán),獲得分?jǐn)?shù)大于等于80分的學(xué)生人數(shù)num2、判斷:如果成績<80,不執(zhí)行num++,直接進(jìn)入下一次循環(huán)什么是continue語句continue:只能用在循環(huán)里continue

作用:跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán)while(…){………………

continue;…………}繼續(xù)下一次循環(huán)通常與條件語句一起使用,加速循環(huán)for(inti=0;i<10;i++){跑400米;

if(!口渴){

continue;//不喝水,繼續(xù)跑}接過水壺,喝水;}示例如何使用continue

for(inti=0;i<total;i++){

System.out.print("請輸入第"+(i+1)+"位學(xué)生的成績:");score=input.nextInt();

if(score<80){

continue;}n

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論