Java語言程序設(shè)計-v3-04_第1頁
Java語言程序設(shè)計-v3-04_第2頁
Java語言程序設(shè)計-v3-04_第3頁
Java語言程序設(shè)計-v3-04_第4頁
Java語言程序設(shè)計-v3-04_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章

流程控制遼寧機電職業(yè)技術(shù)學(xué)院信息工程系軟件教研室遲勇——《Java語言程序設(shè)計》若a=6,b=-4--a%++b的結(jié)果是?當(dāng)x=3x<<2的結(jié)果是?x>>2的結(jié)果是?回顧——《Java語言程序設(shè)計》使用分支結(jié)構(gòu)顯示輸出成績使用循環(huán)結(jié)構(gòu)完成數(shù)學(xué)冪的運算使用各種控制跳轉(zhuǎn)語句完成顯示輸出效果本章學(xué)習(xí)任務(wù)——《Java語言程序設(shè)計》掌握各種流程控制的基本方法熟練掌握分支和循環(huán)流程控制的語法理解并掌握流程控制中的跳轉(zhuǎn)語句本章技能目標(biāo)——《Java語言程序設(shè)計》預(yù)習(xí)檢查(1)--預(yù)習(xí)新單詞單詞釋義單詞釋義ScopeBlockinitializationestimationiteration——《Java語言程序設(shè)計》Java語言的流程控制有哪三種?跳轉(zhuǎn)語句有哪三種?預(yù)習(xí)檢查(2)流程控制-內(nèi)容目錄流程控制語句與塊概述順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語句——《Java語言程序設(shè)計》流程控制結(jié)構(gòu)分類流程控制結(jié)構(gòu)可以分為:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。流程控制中的跳轉(zhuǎn)語句Java中支持break、continue、return三種塊(Block)語句所謂的“塊”,簡而言之就是一對花括號括起來的部分4.1流程控制語句與塊概述流程控制-內(nèi)容目錄流程控制語句與塊概述順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語句——《Java語言程序設(shè)計》4.2順序結(jié)構(gòu)

功能:其中A和B兩個框是順序執(zhí)行的必然,即在執(zhí)行完A框所指定的操作后,接著執(zhí)行B框所指定的操作。AB流程控制-內(nèi)容目錄流程控制語句與塊概述順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語句——《Java語言程序設(shè)計》根據(jù)給定的條件表達式是否成立而選擇執(zhí)行A框或B框4.3分支結(jié)構(gòu)條件判斷BAtruefalse條件判斷Atruefalse用什么數(shù)據(jù)類型能表示一件商品是真貨還是假貨一個條件成立還是不成立為什么需要boolean類型boolean類型只有這兩個值?boolean(布爾)類型boolean類型的值:真:true假:false比較高低、大小、長短張三的考試成績是否比李四高大象是否比烏龜更長壽籃球跟地球一樣大嗎為什么使用關(guān)系運算符如何比較?使用關(guān)系運算符可以比較高低、大小、長短?常用的關(guān)系運算符有哪些:>,<==,!=>=,<=什么是關(guān)系運算符大象的壽命<烏龜?shù)膲勖鎻埲某煽?gt;李四的成績假令狐沖每次考試成績>=90分真籃球的大小==地球的大小假由此看出關(guān)系運算符的作用:用來做比較運算比較后結(jié)果:boolean類型

回顧:如果令狐沖的Java考試成績大于90分,師父就獎勵他《獨孤九劍》劍譜小結(jié)1:如何使用if條件結(jié)構(gòu)(1)使用if條件結(jié)構(gòu)該如何實現(xiàn)importjava.util.Scanner;publicclassHelloAccp2{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print("輸入令狐沖的Java成績:");

intscore=input.nextInt();//令狐沖的Java成績

if

(score>90){//判斷是否大于90分

System.out.println("師父說:不錯,給你《獨孤九劍》劍譜");}}}演示示例2:使用基本if條件結(jié)構(gòu)令狐沖Java成績大于90分,而且音樂成績大于80分,師父獎勵他;或者Java成績等于100分,音樂成績大于70分,師父也可以獎勵他如何使用if條件結(jié)構(gòu)(2)分析:怎樣把多個條件連接起來?使用邏輯運算符運算符表達式說明&&條件1&&條件2僅僅兩個條件同時為真,結(jié)果為真||條件1||條件2只要兩個條件有一個為真,結(jié)果為真!!條件條件為真時,結(jié)果為假條件為假時,結(jié)果為真問題3的條件如何編寫如何使用if條件結(jié)構(gòu)(3)遼寧機電職業(yè)技術(shù)學(xué)院DesignedByChiyong?2008多使用小括號()控制優(yōu)先級score1>90&&score2>80||score1==100&&score2>70運算符的優(yōu)先級:最高的優(yōu)先級:小括號,即()最低的優(yōu)先級:賦值運算符,即=優(yōu)先級順序:!>算術(shù)運算符>比較運算符>&&>||publicclassHelloAccp3{publicstaticvoidmain(String[]args){intscore1=100;//令狐沖的語文成績

int

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

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

||(score1==100&&score2>70)){System.out.println("師父說:不錯,給你《獨孤九劍》劍譜");}}}?——《Java語言程序設(shè)計》

對學(xué)員的結(jié)業(yè)考試成績評測成績>=90:優(yōu)秀成績>=80:良好 成績>=60:中等成績<60:差為什么使用多重if結(jié)構(gòu)使用多重if結(jié)構(gòu)——《Java語言程序設(shè)計》什么是多重if結(jié)構(gòu)多重if結(jié)構(gòu)就是在else部分中還包含其他if塊if

(條件){//語句

}

elseif

(條件)

{//語句

}else

{//語句

}可以有多個可以省略多重if結(jié)構(gòu)假真真假表達式1語句1表達式2語句2語句3——《Java語言程序設(shè)計》例4-1:顯示輸出成績信息--(示例1)publicclassTestIf{publicstaticvoidmain(String[]args){ intscore=Integer.parseInt(args[0]);

if(score>=60){

if(score<70){ System.out.println("你的成績?yōu)榧案瘢?); }

if(score>=70&&score<80){ System.out.println("你的成績?yōu)橹校?); }

if(score>80&&score<=90){ System.out.println("你的成績?yōu)榱己茫?); }

if(score>90&&score<=100){ System.out.println("你的成績?yōu)閮?yōu)秀!"); } }

else{ System.out.println("你的成績不及格!"); }}}——《Java語言程序設(shè)計》如何使用多重if結(jié)構(gòu)--(示例2)

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分完整代碼演示演示示例:使用多重if結(jié)構(gòu)——《Java語言程序設(shè)計》令狐沖參加比武大會如果獲得第一名,將出任武林盟主如果獲得第二名,將出任武當(dāng)掌門如果獲得第三名,將出任峨嵋掌門否則,將被逐出師門為什么使用switch結(jié)構(gòu)使用if條件結(jié)構(gòu)如何實現(xiàn)實現(xiàn)代碼更好的解決辦法:使用switch結(jié)構(gòu)解決——《Java語言程序設(shè)計》switch(表達式){

case常量1: 語句;

break;

case常量2: 語句;

break;

default: 語句;}switch結(jié)構(gòu)什么是switch結(jié)構(gòu)計算表達式的值如果等于常量1

如果等于常量2

如果沒有找到匹配的值

相同點不同點switch多重if比較switch和多重if結(jié)構(gòu)——《Java語言程序設(shè)計》都可以實現(xiàn)多分支結(jié)構(gòu)只能處理等值的條件判斷,且條件是整型變量或字符變量的等值判斷處理在else部分還包含其它if結(jié)構(gòu),特別適合某個變量處于某個區(qū)間時的情況——《Java語言程序設(shè)計》switch-case分支結(jié)構(gòu)(1)與if-else嵌套相比,switch-case結(jié)構(gòu)實現(xiàn)類似的分支選擇顯得結(jié)構(gòu)十分清晰,可讀性更強,如圖所示?!禞ava語言程序設(shè)計》switch語句的格式:

switch(表達式) {

case常量表達式1:語句序列1;[break;]

case常量表達式2:語句序列2;[break;]

……

case常量表達式n:語句序列n;[break;]

[default:語句序列n+1;]

}使用switch-case結(jié)構(gòu)注意事項如下:switch(表達式)中表達式的值只能為int、byte、short、char,不允許為long,double等長型值,也不允許是String()case子句表達式為常量;switch-case分支結(jié)構(gòu)(2)——《Java語言程序設(shè)計》如何使用switch結(jié)構(gòu)使用switch結(jié)構(gòu)解決問題6intmingCi=1;switch(mingCi){

case

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

break;

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

break;

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

break;

default:System.out.println("被逐出師門");}第一名的情況下第二名的情況下第三名的情況下其他情況下完整代碼演示演示示例:使用switch結(jié)構(gòu)——《Java語言程序設(shè)計》常見錯誤(1)intmingCi=1;switch(mingCi){

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

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

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

default:System.out.println("被逐出師門");}輸出結(jié)果是什么?如果需要每個case執(zhí)行完后跳出,在每個case后不要忘記寫break;演示示例:完整代碼——《Java語言程序設(shè)計》常見錯誤(2)int

mingCi=1;switch(mingCi){

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

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

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

default:System.out.println("被逐出師門");}case后面的常量必須各不相同代碼錯誤——《Java語言程序設(shè)計》常見錯誤(3)Stringday="星期一";switch(day){

case"星期一":System.out.println("星期一:青菜");

break;

case"星期二":System.out.println("星期二:魚");

break;……

default:}…switch后面小括號中表達式的值必須是整型或字符型(JDK7.0以后版本可以使用字符串)演示示例8:完整代碼代碼錯誤——《Java語言程序設(shè)計》例4-2:簡單計算器(使用輸入流完成操作數(shù)的輸入)--1 intnum1=0,num2=0;//賦初始值0

charoper=‘’;//賦初始值為空字符

System.out.println("輸入第一個操作數(shù):"); /*使用輸入流從鍵盤接收字符串*/

BufferedReaderbr1=newBufferedReader(newInputStreamReader(System.in)); num1=Integer.parseInt(br1.readLine());//將從鍵盤讀入的字符串轉(zhuǎn)換為整型數(shù)

System.out.println(“輸入第二個操作數(shù):”);...

System.out.println("請輸入加(+)減(-)乘(*)除(/)運算符之一:");

oper=(char)System.in.read();//將從鍵盤讀入的整型數(shù)轉(zhuǎn)換為字符——《Java語言程序設(shè)計》

switch(oper){ case'+':

System.out.println("和為:"+(num1+num2));

break; case'-':

...

break; default:

System.out.println("未知的運算符!"); }}例4-2:簡單計算器(使用輸入流完成操作數(shù)的輸入)--2流程控制-內(nèi)容目錄流程控制語句與塊概述順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語句——《Java語言程序設(shè)計》為什么需要循環(huán)2-11、盈盈為了考驗令狐沖奪冠的決心,要他說一百遍“我能行!”System.out.println("第1次說:我能行!");System.out.println("第2次說:我能行!");……System.out.println("第100次說:我能行!");100條2、盈盈要他說10000遍“我是最棒的!”,怎么辦?——《Java語言程序設(shè)計》為什么需要循環(huán)2-2System.out.println("我是最棒的!");System.out.println("我是最棒的!");System.out.println("我是最棒的!");System.out.println("我是最棒的!");System.out.println("我是最棒的!");System.out.println("我是最棒的!"); ……System.out.println("我是最棒的!");int

i=1;while(i<=100){ System.out.println( "我能行!");

i++;}i<=10000"我是最棒的!");沒有使用循環(huán)結(jié)構(gòu)使用while循環(huán)——《Java語言程序設(shè)計》4.4.1循環(huán)結(jié)構(gòu)概述(1-1)循環(huán)語句用于反復(fù)執(zhí)行一段代碼,直到滿足某種條件為止。Java語言有三種循環(huán)語句:

while、do-while和for循環(huán)語句完整的循環(huán)結(jié)構(gòu)應(yīng)該包含四個組成部分:(1)初始化部分(initialization):用來設(shè)置循環(huán)的初始條件,如設(shè)置計數(shù)器的初始值。(2)判斷部分(estimation):是一個關(guān)系或布爾表達式,用來判斷循環(huán)是否可以繼續(xù)運行的條件(3)迭代部分(iteration):修改循環(huán)初始條件,用來控制循環(huán)的次數(shù),如使計數(shù)器的值自增或自減。(4)循環(huán)體部分(body):循環(huán)中反復(fù)執(zhí)行的代碼?!禞ava語言程序設(shè)計》4.4.2while循環(huán)while循環(huán)又稱為“當(dāng)型”循環(huán),意指:當(dāng)……條件成立時循環(huán)執(zhí)行,判斷表達式循環(huán)體truefalse迭代表達式初始化while語句的語法格式為:

while(條件判斷表達式) {

循環(huán)體語句塊;

}publicclassTest{publicstaticvoidmain(String[]args)throwsException{ intx=2; intN=1;//初始化循環(huán)變量

System.out.println("輸入要計算的冪數(shù):"); intend=Integer.parseInt(newBufferedReader( newInputStreamReader(System.in)).readLine()); while(N<end){ x*=2;//計算x=x*2 N++; System.out.println("2的"+N+"次冪是:"+x); }}}——《Java語言程序設(shè)計》例4-3:計算2的N次冪——《Java語言程序設(shè)計》4.4.3do-while循環(huán)循環(huán)體truefalse迭代表達式初始化判斷表達式do-while循環(huán)又稱為“直到型”循環(huán),意指:直到……條件不成立時循環(huán)才終止執(zhí)行。

do-while語句的語法格式為: do { 循環(huán)體語句塊; }while(條件判斷表達式);——《Java語言程序設(shè)計》如何用程序描述下面這個故事?為了備戰(zhàn),令狐沖鍥而不舍地練習(xí),盈盈嚴格把關(guān)…“盈盈,怎么樣,可以了嗎?”“不行,高音部分唱得還不是很好,鋼琴還要繼續(xù)練啊!”沒有聽到“很棒”的評價,看來革命尚未成功,令狐沖并不氣餒:早上5點練聲,上午練鋼琴,下午到聲樂老師家練習(xí)唱歌,晚上練習(xí)舞蹈基本功。

循環(huán)條件

循環(huán)操作

使用while循環(huán)的步驟1、分析循環(huán)條件和循環(huán)操作2、套用while語法寫出代碼3、檢查循環(huán)是否能夠退出——《Java語言程序設(shè)計》程序描述System.out.print("表演得怎么樣

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

{ System.out.println("早上5點開始練聲

!"); 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類型的值是否相等——《Java語言程序設(shè)計》4.4.4for循環(huán)判斷表達式循環(huán)體truefalse迭代表達式初始化如果已知循環(huán)要執(zhí)行的次數(shù),可以使用for循環(huán),會使程序的結(jié)構(gòu)更清晰。但其實for循環(huán)可以替代其它任何類型的循環(huán)。for語句由四部分構(gòu)成,語法格式為: for(①初始化表達式;②條件判斷表達式;③迭代表達式) { ④循環(huán)體語句塊; }——《Java語言程序設(shè)計》For循環(huán)與while循環(huán)的的關(guān)聯(lián)以上①②③三個表達式是可選部分(但分號不能省略),如果for語句中沒有這三個表達式任一個,便會產(chǎn)生特殊效果:1)若省略表達式①,可以在for循環(huán)之前另行書寫它,效果相同;2)若省略表達式②,相當(dāng)于無限循環(huán);3)若省略表達式③,可以在for循環(huán)體④中另行書寫它,效果相同;若省略表達式①③,則完全等同于while語句,如求1+2+……+99的和:

若省略全部這三個表達式,相當(dāng)于一個無限循環(huán)while(true);雖然for循環(huán)的表達式可以省略,但為了程序的可讀性,最好不要這樣做。for(;i<100;){sum=sum+i;i++;}while(i<100){sum=sum+i;i++;}流程控制-內(nèi)容目錄流程控制語句與塊概述順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語句——《Java語言程序設(shè)計》4.5跳轉(zhuǎn)語句break跳出當(dāng)前switch分支和循環(huán)continue跳出當(dāng)次循環(huán)return返回調(diào)用者

在分支、循環(huán)體或語句塊中,可能需要根據(jù)某種情況,控制程序退出循環(huán)或跳過某些語句。

break、continue和return能實現(xiàn)以上功能,它們的功能簡述如下:——《Java語言程序設(shè)計》4.5.1break語句

例4-4:計算1-9這幾個整數(shù)的平方。publicclassTestBreak{publicstaticvoidmain(String[]args){inti=0;while(true)//條件永遠為真{//循環(huán)開始

i++;if(i==10) //當(dāng)i超過9時,結(jié)束循環(huán){System.out.println("Ok,runbreak.");break;//執(zhí)行該語句跳出while循環(huán)}

System.out.print(i+"*"+i+"="+i*i+"");}//循環(huán)結(jié)束

System.out.println("Encounterbreak!");//跳出循環(huán)執(zhí)行的第1條語句}}【運行結(jié)果】1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=81Ok,runbreak.Encounterbreak!——《Java語言程序設(shè)計》4.5.2contiune語句continue語句用于跳過循環(huán)體中當(dāng)次循環(huán)的該語句后的其他語句,轉(zhuǎn)到下次循環(huán)繼續(xù)判斷條件表達式的值,以決定是否繼續(xù)循環(huán)。例4-5:輸出1~9中除6以外所有偶數(shù)的平方。publicclassTestContinue{publicstaticvoidmain(String[]args){for(inti=2;i<=9;i++)//i<=9為循環(huán)條件

{//循環(huán)開始

if(i==6||i%2!=0)//i為奇數(shù)或6時,不計算

{

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論