java概述課件-03-選擇_第1頁
java概述課件-03-選擇_第2頁
java概述課件-03-選擇_第3頁
java概述課件-03-選擇_第4頁
java概述課件-03-選擇_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1第3章選擇1第3章選擇2引言如果在前邊程序中的radius賦一個負值,程序就會打印一個非法的結果。如果半徑是一個負值,是不希望程序計算面積的,那么該如何計算這種情況呢?2引言如果在前邊程序中的radius賦一個負值,程序就會3學習目標聲明boolean類型以及使用比較運算符書寫布爾表達式(3.2節(jié))。使用布爾表達式編寫程序AdditionQuize(3.3節(jié))。使用單向if語句實現(xiàn)選擇控制(3.4節(jié))。使用單向if語句編寫游戲GuessBirthday的程序(3.5節(jié))。使用雙向if語句實現(xiàn)選擇控制(3.6節(jié))。使用嵌套的if語句實現(xiàn)選擇控制(3.7節(jié))。避免if語句中的常見錯誤(3.8節(jié))。使用選擇語句編程的不同種類的例子(SubstractionQuiz,BMI,ComputeTax)(3.9-3.11節(jié))使用Math.random()方法產生隨機數(shù)(3.9節(jié))。使用邏輯運算符(&&,||和!)對條件進行組合(3.12節(jié))。使用帶組合條件的選擇語句進行編程(LeapYear,Lottery)(3.13-3.14節(jié))。使用switch語句實現(xiàn)選擇控制(3.15節(jié))。使用條件運算符書寫表達式(3.16節(jié))。使用System.out.printf方法格式化輸出(3.17節(jié))。檢查控制運算符優(yōu)先級和結合方向的規(guī)則(3.18節(jié))。(GUI)使用確定對話框獲取用戶的確認信息(3.19節(jié))。3學習目標聲明boolean類型以及使用比較運算符書寫布爾4boolean數(shù)據類型往往在一個程序中我們需要比較兩個值,如i是否大于j。Java提供了六個比較運算符(也被稱為關系操作符),可以用來比較兩個值。比較的結果是一個布爾值:TRUE或FALSE。booleanb=(1>2);

4boolean數(shù)據類型往往在一個程序中我們需要比較兩個5比較運算符運算符 名稱 <

小于 <=

小于等于>

大于>=

大于等于==

等于!=

不等于5比較運算符運算符 名稱 6問題:一個簡單的數(shù)學學習工具AdditionQuizRun假設希望開發(fā)一個程序,讓一年級學生練習加法。程序隨機產生兩個一位整數(shù):number1和number2,然后顯示給學生“Whatis7+9?”,如實例運行所示。當學生在輸入對話框中輸入答案之后,程序顯示一個消息,表明答案是真的還是假的。6問題:一個簡單的數(shù)學學習工具AdditionQuizRun7單向if語句if(布爾表達式){語句;}if(radius>=0){area=radius*radius*PI;System.out.println("Thearea"+"forthecircleofradius"+radius+"is"+area);}7單向if語句if(布爾表達式){if(radius8注意8注意9問題:猜生日GuessBirthday該程序可以猜到你的出生日期。運行看它是如何工作的。9問題:猜生日GuessBirthday該程序可以猜到你10猜生日游戲的數(shù)學基礎19的二進制是10011。7的二進制是111。23的二進制是11101。10猜生日游戲的數(shù)學基礎19的二進制是10011。7的二進11簡單if演示SimpleIfDemoRun程序提示用戶輸入一個整數(shù),如果它能被5整除就顯示HiFive,而如果它能被2整除就顯示HiEven。11簡單if演示SimpleIfDemoRun程序提示用12雙向if語句if(布爾表達式){布爾表達式為真時執(zhí)行的語句(組);}else{布爾表達式為假時執(zhí)行的語句(組);}12雙向if語句if(布爾表達式){13if...else例子if(radius>=0){area=radius*radius*3.14159; System.out.println("Theareaforthe“+“circleofradius"+radius+"is"+area);}else{System.out.println("Negativeinput");}13if...else例子if(radius>=0)14嵌套的if語句14嵌套的if語句15跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0這個語句是falseanimation15跟蹤if-else語句if(score>=90.016跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0這個語句是falseanimation16跟蹤if-else語句if(score>=90.017跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0這個語句是trueanimation17跟蹤if-else語句if(score>=90.018跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0經判斷是C級animation18跟蹤if-else語句if(score>=90.019跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0退出if語句animation19跟蹤if-else語句if(score>=90.020注意在同一塊中,else總是和離它最近的if子句匹配。20注意在同一塊中,else總是和離它最近的if子句匹配。21注意為了強制這個else匹配第一個if子句,必須添加一對花括號:

inti=1;intj=2;intk=3;if(i>j){if(i>k)System.out.println("A");

}elseSystem.out.println("B");這條語句會打印B.21注意為了強制這個else匹配第一個if子句,必須添加一對22常見錯誤在if行出現(xiàn)錯誤的分號if(radius>=0);{area=radius*radius*PI;System.out.println("Theareaforthecircleofradius"+

radius+"is"+area);}這個錯誤很難發(fā)現(xiàn),因為它既不是編譯錯誤也不是運行錯誤,而是一個邏輯錯誤。當使用下行塊風格時,經常會出現(xiàn)這個錯誤。所以使用行為塊風格可以幫助防止出現(xiàn)此類錯誤。Wrong22常見錯誤在if行出現(xiàn)錯誤的分號Wrong23小竅門23小竅門24注意24注意25問題:一個改進的數(shù)學學習工具假設我們想開發(fā)一個一年級學生練習減法的程序。程序隨機產生兩個一位整數(shù):number1和number2,且滿足number1>=number2.程序向學生顯示問題,例如,“Whatis9-2?”。當學生輸入答案之后,程序會顯示一個消息表示答案是否正確。SubtractionQuiz25問題:一個改進的數(shù)學學習工具假設我們想開發(fā)一個一年級26問題:計算身體質量指數(shù)體質指數(shù)(BMI)是關于體重指標的健康測量。將以千克為單位的體重除以以米為單位身高的平方,就得到BMI的值。針對16歲及以上的年齡人群,他們的BMI值的說明如下表所示。ComputeBMI26問題:計算身體質量指數(shù)體質指數(shù)(BMI)是關于體重指27問題:計算稅款美國國家聯(lián)邦個人收入所得稅是基于納稅人登記的身份和可征稅收入計算的。納稅人登記的身份有四種:單身納稅人,已婚共同納稅人,已婚單獨納稅人和家庭戶主納稅人。稅率會隨年變化。下表給出2009年的稅率。MarginalTaxRateSingleMarriedFilingJointlyorQualifiedWidow(er)MarriedFilingSeparatelyHeadofHousehold10%$0–$8,350$0–$16,700$0–$8,350$0–$11,95015%$8,351–$33,950$16,701–$67,900$8,351–$33,950$11,951–$45,50025%$33,951–$82,250$67,901–$137,050$33,951–$68,525$45,501–$117,45028%$82,251–$171,550$137,051–$208,850$68,525–$104,425$117,451–$190,20033%$171,551–$372,950$208,851–$372,950$104,426–$186,475$190,201-$372,95035%$372,951+$372,951+$186,476+$372,951+27問題:計算稅款美國國家聯(lián)邦個人收入所得稅是基于納稅人28問題:計算稅款續(xù)ComputeTaxif(status==0){//Computetaxforsinglefilers}elseif(status==1){//Computetaxformarriedfilejointly}elseif(status==2){//Computetaxformarriedfileseparately}elseif(status==3){//Computetaxforheadofhousehold}else{//Displaywrongstatus}28問題:計算稅款續(xù)ComputeTaxif(status29邏輯運算符運算符 名稱 !

非 &&

與 ||

或 ^

異或 29邏輯運算符運算符 名稱 30運算符!的真值表30運算符!的真值表31運算符&&的真值表31運算符&&的真值表32運算符||的真值表32運算符||的真值表33異或運算符^的真值表33異或運算符^的真值表34例子給出有一個程序檢驗一個數(shù)是否能被2和3整除,是被2還是3整除,是只能被2或3兩者中的一個整除。TestBooleanOperatorsRun34例子給出有一個程序檢驗一個數(shù)是否能被2和3整除,是被35例子續(xù)System.out.println("Is"+number+"divisibleby2and3?"+((number%2==0)&&(number%3==0)));

System.out.println("Is"+number+"divisibleby2or3?"+((number%2==0)||(number%3==0)));

System.out.println("Is"+number+"divisibleby2or3,butnotboth?"+((number%2==0)^(number%3==0)));TestBooleanOperatorsRun35例子續(xù)System.out.println("Is"36運算符&和|Java中&&和&以及||和|的區(qū)別:&&和&都是表示與,區(qū)別是&&只要不滿足第一個條件,后面條件就不再判斷。而&要對所有的條件都進行判斷。||和|同理。36運算符&和|Java中&&和&以及||和|的區(qū)別37運算符&和|如果x是1,在如下表達式之后x是?(x>1)&(x++<10)如果x是1,在如下表達式之后x是?(1>x)&&(1>x++)這個又如何呢(1==x)|(10>x++)?(1==x)||(10>x++)?37運算符&和|如果x是1,在如下表達式之后x是?38問題:判斷閏年LeapYearRun這個程序首先讓用戶輸入一個int型年份,然后判斷它是不是閏年。如果某年可以被4整除而不能被100整除,或者可以被400整除,那么這一年就是閏年。(year%4==0&&year%100!=0)||(year%400==0)38問題:判斷閏年LeapYearRun這個程序首先讓用39問題:彩票假設我們想開發(fā)一個玩彩票的游戲,程序會隨機地產生一個兩位數(shù)的彩票,提示用戶輸入一個兩位數(shù),然后按照下面的規(guī)則判斷用戶是否能贏。Lottery如果用戶的輸入數(shù)匹配彩票得實際順序,獎金為$10000美元。如果用戶輸入的所有數(shù)字匹配彩票的所有數(shù)字,獎金$3000美元。如果用戶輸入的一個數(shù)字匹配彩票的一個數(shù)字,獎金$1000美元。39問題:彩票假設我們想開發(fā)一個玩彩票的游戲,程序會隨機40switch語句switch(status){case0:computetaxesforsinglefilers;break;case1:computetaxesformarriedfilejointly;break;case2:computetaxesformarriedfileseparately;break;case3:computetaxesforheadofhousehold;break;default:System.out.println("Errors:invalidstatus");System.exit(0);}40switch語句switch(status){41switch語句的流程圖41switch語句的流程圖42switch語句的規(guī)則switch(switch-expression){casevalue1:statement(s)1;break;casevalue2:statement(s)2;break;…casevalueN:statement(s)N;break;default:statement(s)-for-default;}Switch表達式必須能計算出一個char,byte,short或int

型值,并且必須總是用括號括住。

value1,...,valueN必須與switch表達式的值具有相同的數(shù)據類型。注意:value1,...,valueN都是常量表達式,也就是說這里的表達式是不能包含變量的,例如,不允許出現(xiàn)1+x。42switch語句的規(guī)則switch(switch-e43Switch語句的規(guī)則關鍵字break是可選的。break語句會立即終止整個switch語句。如果break語句是不存在的,下一個case語句將被執(zhí)行。switch(switch-expression){casevalue1:statement(s)1;break;casevalue2:statement(s)2;break;…casevalueN:statement(s)N;break;default:statement(s)-for-default;}默認情況下(default)是可選的,用來指定沒有一個指定的case與switch表達式匹配時應該采取的操作。

這幾條語句是按順序判斷的,但是他們的順序不影響程序運行結果.然而要有良好的編程風格,因此按順序比較好。習慣上把默認情況放在最后。43Switch語句的規(guī)則關鍵字break是可選的。b44跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

如果ch是'a':44跟蹤switch語句switch(ch){如果ch45跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

ch是'a':45跟蹤switch語句switch(ch){ch是46跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

執(zhí)行這一行語句46跟蹤switch語句switch(ch){執(zhí)行這一行47跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

執(zhí)行這一行語句47跟蹤switch語句switch(ch){執(zhí)行這一行48跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

執(zhí)行這一行語句48跟蹤switch語句switch(ch){執(zhí)行這一行49跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

Nextstatement;執(zhí)行這一行語句49跟蹤switch語句switch(ch){執(zhí)行這一行50跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

假如chis'a':50跟蹤switch語句switch(ch){假如ch51跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

Executethisline51跟蹤switch語句switch(ch){Execu52跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

ch是'a':52跟蹤switch語句switch(ch){ch是53跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

執(zhí)行這一行語句53跟蹤switch語句switch(ch){執(zhí)行這一行54跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

Nextstatement;執(zhí)行下一行語句54跟蹤switch語句switch(ch){執(zhí)行下一行55條件表達式if(x>0)y=1elsey=-1;等同于:y=(x>0)?1:-1;(boolean-expression)?expression1:expression2三目運算符二元運算符一元運算符55條件表達式if(x>0)56條件運算符if(num%2==0)System.out.println(num+“iseven”);elseSystem.out.println(num+“isodd”);System.out.println((num%2==0)?num+“iseven”:num+“isodd”);56條件運算符if(num%2==0)57條件運算符(boolean-expression)?exp1:exp257條件運算符(boolean-expression)?58格式化控制臺輸出使用printf語句:System.out.printf(format,items);格式標識符指定每個條目應該如何顯示。這里的條目可以是數(shù)值,字符,布爾值或字符串。一個標識符是以百分號(%)開頭的轉換碼。58格式化控制臺輸出使用printf語句:59常用的標識符標識符輸出 舉例%b

布爾值

trueorfalse

%c

字符

'a'

%d

十進制整數(shù)

200%f

浮點數(shù)

45.460000

%e

標準科學計數(shù)法形式的數(shù)4.556000e+01%s

字符串

"Javaiscool"

59常用的標識符標識符輸出 60運算符的優(yōu)先級表var++,var--(后置運算符)+,-(一元加號和一元減號),++var,--var(前置運算符)(type)類型轉換!(非)*,/,%(乘法,除法和求余運算)+,-(二元加法和減法)<,<=,>,>=(比較運算符)==,!=;(相等運算符)^(異或)&&(條件與)||(條件或)=,+=,-=,*=,/=,%=(賦值運算符)60運算符的優(yōu)先級表var++,var--(后置運算符)61運算符的優(yōu)先級和結合方向應該首先計算括號內中的表達式(括號可以嵌套,在嵌套的情況下,先計算里層括號中的表達式)。當計算沒有括號時,運算符會依照優(yōu)先級規(guī)則和結合規(guī)則進行運算。優(yōu)先級規(guī)則定義了運算符的先后次序,它包含目前所學的所有運算符。它們從上到下按優(yōu)先級遞減的方式排列。優(yōu)先級相同的運算符在同一排。61運算符的優(yōu)先級和結合方向應該首先計算括號內中的表達式62運算符的結合性如果相鄰運算符的優(yōu)先級相同,則結合方向決定它們的執(zhí)行順序。除了賦值運算符之外,所有的二元運算符都是左結合a–b+c–d等價于

((a–b)+c)–d賦值運算符是右結合,所以a=b+=c=5等價于a=(b+=(c=5))62運算符的結合性如果相鄰運算符的優(yōu)先級相同,則結合方向63例子應用運算符的優(yōu)先級和結合性規(guī)則,表達式

3+4×4>5×(4+3)-1等于如下:63例子應用運算符的優(yōu)先級和結合性規(guī)則,表達式64(GUI)確定對話框intoption=JOptionPane.showConfirmDialog(null,"Continue");64(GUI)確定對話框intoption=JOpt65問題:猜生日GuessBirthDateUsingConfirmationDialog這個程序可以猜到你的生日,運行看看是如何工作的65問題:猜生日GuessBirthDateUsingCon66第3章選擇1第3章選擇67引言如果在前邊程序中的radius賦一個負值,程序就會打印一個非法的結果。如果半徑是一個負值,是不希望程序計算面積的,那么該如何計算這種情況呢?2引言如果在前邊程序中的radius賦一個負值,程序就會68學習目標聲明boolean類型以及使用比較運算符書寫布爾表達式(3.2節(jié))。使用布爾表達式編寫程序AdditionQuize(3.3節(jié))。使用單向if語句實現(xiàn)選擇控制(3.4節(jié))。使用單向if語句編寫游戲GuessBirthday的程序(3.5節(jié))。使用雙向if語句實現(xiàn)選擇控制(3.6節(jié))。使用嵌套的if語句實現(xiàn)選擇控制(3.7節(jié))。避免if語句中的常見錯誤(3.8節(jié))。使用選擇語句編程的不同種類的例子(SubstractionQuiz,BMI,ComputeTax)(3.9-3.11節(jié))使用Math.random()方法產生隨機數(shù)(3.9節(jié))。使用邏輯運算符(&&,||和!)對條件進行組合(3.12節(jié))。使用帶組合條件的選擇語句進行編程(LeapYear,Lottery)(3.13-3.14節(jié))。使用switch語句實現(xiàn)選擇控制(3.15節(jié))。使用條件運算符書寫表達式(3.16節(jié))。使用System.out.printf方法格式化輸出(3.17節(jié))。檢查控制運算符優(yōu)先級和結合方向的規(guī)則(3.18節(jié))。(GUI)使用確定對話框獲取用戶的確認信息(3.19節(jié))。3學習目標聲明boolean類型以及使用比較運算符書寫布爾69boolean數(shù)據類型往往在一個程序中我們需要比較兩個值,如i是否大于j。Java提供了六個比較運算符(也被稱為關系操作符),可以用來比較兩個值。比較的結果是一個布爾值:TRUE或FALSE。booleanb=(1>2);

4boolean數(shù)據類型往往在一個程序中我們需要比較兩個70比較運算符運算符 名稱 <

小于 <=

小于等于>

大于>=

大于等于==

等于!=

不等于5比較運算符運算符 名稱 71問題:一個簡單的數(shù)學學習工具AdditionQuizRun假設希望開發(fā)一個程序,讓一年級學生練習加法。程序隨機產生兩個一位整數(shù):number1和number2,然后顯示給學生“Whatis7+9?”,如實例運行所示。當學生在輸入對話框中輸入答案之后,程序顯示一個消息,表明答案是真的還是假的。6問題:一個簡單的數(shù)學學習工具AdditionQuizRun72單向if語句if(布爾表達式){語句;}if(radius>=0){area=radius*radius*PI;System.out.println("Thearea"+"forthecircleofradius"+radius+"is"+area);}7單向if語句if(布爾表達式){if(radius73注意8注意74問題:猜生日GuessBirthday該程序可以猜到你的出生日期。運行看它是如何工作的。9問題:猜生日GuessBirthday該程序可以猜到你75猜生日游戲的數(shù)學基礎19的二進制是10011。7的二進制是111。23的二進制是11101。10猜生日游戲的數(shù)學基礎19的二進制是10011。7的二進76簡單if演示SimpleIfDemoRun程序提示用戶輸入一個整數(shù),如果它能被5整除就顯示HiFive,而如果它能被2整除就顯示HiEven。11簡單if演示SimpleIfDemoRun程序提示用77雙向if語句if(布爾表達式){布爾表達式為真時執(zhí)行的語句(組);}else{布爾表達式為假時執(zhí)行的語句(組);}12雙向if語句if(布爾表達式){78if...else例子if(radius>=0){area=radius*radius*3.14159; System.out.println("Theareaforthe“+“circleofradius"+radius+"is"+area);}else{System.out.println("Negativeinput");}13if...else例子if(radius>=0)79嵌套的if語句14嵌套的if語句80跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0這個語句是falseanimation15跟蹤if-else語句if(score>=90.081跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0這個語句是falseanimation16跟蹤if-else語句if(score>=90.082跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0這個語句是trueanimation17跟蹤if-else語句if(score>=90.083跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0經判斷是C級animation18跟蹤if-else語句if(score>=90.084跟蹤if-else語句if(score>=90.0)grade='A';elseif(score>=80.0)grade='B';elseif(score>=70.0)grade='C';elseif(score>=60.0)grade='D';elsegrade='F';假如成績是70.0退出if語句animation19跟蹤if-else語句if(score>=90.085注意在同一塊中,else總是和離它最近的if子句匹配。20注意在同一塊中,else總是和離它最近的if子句匹配。86注意為了強制這個else匹配第一個if子句,必須添加一對花括號:

inti=1;intj=2;intk=3;if(i>j){if(i>k)System.out.println("A");

}elseSystem.out.println("B");這條語句會打印B.21注意為了強制這個else匹配第一個if子句,必須添加一對87常見錯誤在if行出現(xiàn)錯誤的分號if(radius>=0);{area=radius*radius*PI;System.out.println("Theareaforthecircleofradius"+

radius+"is"+area);}這個錯誤很難發(fā)現(xiàn),因為它既不是編譯錯誤也不是運行錯誤,而是一個邏輯錯誤。當使用下行塊風格時,經常會出現(xiàn)這個錯誤。所以使用行為塊風格可以幫助防止出現(xiàn)此類錯誤。Wrong22常見錯誤在if行出現(xiàn)錯誤的分號Wrong88小竅門23小竅門89注意24注意90問題:一個改進的數(shù)學學習工具假設我們想開發(fā)一個一年級學生練習減法的程序。程序隨機產生兩個一位整數(shù):number1和number2,且滿足number1>=number2.程序向學生顯示問題,例如,“Whatis9-2?”。當學生輸入答案之后,程序會顯示一個消息表示答案是否正確。SubtractionQuiz25問題:一個改進的數(shù)學學習工具假設我們想開發(fā)一個一年級91問題:計算身體質量指數(shù)體質指數(shù)(BMI)是關于體重指標的健康測量。將以千克為單位的體重除以以米為單位身高的平方,就得到BMI的值。針對16歲及以上的年齡人群,他們的BMI值的說明如下表所示。ComputeBMI26問題:計算身體質量指數(shù)體質指數(shù)(BMI)是關于體重指92問題:計算稅款美國國家聯(lián)邦個人收入所得稅是基于納稅人登記的身份和可征稅收入計算的。納稅人登記的身份有四種:單身納稅人,已婚共同納稅人,已婚單獨納稅人和家庭戶主納稅人。稅率會隨年變化。下表給出2009年的稅率。MarginalTaxRateSingleMarriedFilingJointlyorQualifiedWidow(er)MarriedFilingSeparatelyHeadofHousehold10%$0–$8,350$0–$16,700$0–$8,350$0–$11,95015%$8,351–$33,950$16,701–$67,900$8,351–$33,950$11,951–$45,50025%$33,951–$82,250$67,901–$137,050$33,951–$68,525$45,501–$117,45028%$82,251–$171,550$137,051–$208,850$68,525–$104,425$117,451–$190,20033%$171,551–$372,950$208,851–$372,950$104,426–$186,475$190,201-$372,95035%$372,951+$372,951+$186,476+$372,951+27問題:計算稅款美國國家聯(lián)邦個人收入所得稅是基于納稅人93問題:計算稅款續(xù)ComputeTaxif(status==0){//Computetaxforsinglefilers}elseif(status==1){//Computetaxformarriedfilejointly}elseif(status==2){//Computetaxformarriedfileseparately}elseif(status==3){//Computetaxforheadofhousehold}else{//Displaywrongstatus}28問題:計算稅款續(xù)ComputeTaxif(status94邏輯運算符運算符 名稱 !

非 &&

與 ||

或 ^

異或 29邏輯運算符運算符 名稱 95運算符!的真值表30運算符!的真值表96運算符&&的真值表31運算符&&的真值表97運算符||的真值表32運算符||的真值表98異或運算符^的真值表33異或運算符^的真值表99例子給出有一個程序檢驗一個數(shù)是否能被2和3整除,是被2還是3整除,是只能被2或3兩者中的一個整除。TestBooleanOperatorsRun34例子給出有一個程序檢驗一個數(shù)是否能被2和3整除,是被100例子續(xù)System.out.println("Is"+number+"divisibleby2and3?"+((number%2==0)&&(number%3==0)));

System.out.println("Is"+number+"divisibleby2or3?"+((number%2==0)||(number%3==0)));

System.out.println("Is"+number+"divisibleby2or3,butnotboth?"+((number%2==0)^(number%3==0)));TestBooleanOperatorsRun35例子續(xù)System.out.println("Is"101運算符&和|Java中&&和&以及||和|的區(qū)別:&&和&都是表示與,區(qū)別是&&只要不滿足第一個條件,后面條件就不再判斷。而&要對所有的條件都進行判斷。||和|同理。36運算符&和|Java中&&和&以及||和|的區(qū)別102運算符&和|如果x是1,在如下表達式之后x是?(x>1)&(x++<10)如果x是1,在如下表達式之后x是?(1>x)&&(1>x++)這個又如何呢(1==x)|(10>x++)?(1==x)||(10>x++)?37運算符&和|如果x是1,在如下表達式之后x是?103問題:判斷閏年LeapYearRun這個程序首先讓用戶輸入一個int型年份,然后判斷它是不是閏年。如果某年可以被4整除而不能被100整除,或者可以被400整除,那么這一年就是閏年。(year%4==0&&year%100!=0)||(year%400==0)38問題:判斷閏年LeapYearRun這個程序首先讓用104問題:彩票假設我們想開發(fā)一個玩彩票的游戲,程序會隨機地產生一個兩位數(shù)的彩票,提示用戶輸入一個兩位數(shù),然后按照下面的規(guī)則判斷用戶是否能贏。Lottery如果用戶的輸入數(shù)匹配彩票得實際順序,獎金為$10000美元。如果用戶輸入的所有數(shù)字匹配彩票的所有數(shù)字,獎金$3000美元。如果用戶輸入的一個數(shù)字匹配彩票的一個數(shù)字,獎金$1000美元。39問題:彩票假設我們想開發(fā)一個玩彩票的游戲,程序會隨機105switch語句switch(status){case0:computetaxesforsinglefilers;break;case1:computetaxesformarriedfilejointly;break;case2:computetaxesformarriedfileseparately;break;case3:computetaxesforheadofhousehold;break;default:System.out.println("Errors:invalidstatus");System.exit(0);}40switch語句switch(status){106switch語句的流程圖41switch語句的流程圖107switch語句的規(guī)則switch(switch-expression){casevalue1:statement(s)1;break;casevalue2:statement(s)2;break;…casevalueN:statement(s)N;break;default:statement(s)-for-default;}Switch表達式必須能計算出一個char,byte,short或int

型值,并且必須總是用括號括住。

value1,...,valueN必須與switch表達式的值具有相同的數(shù)據類型。注意:value1,...,valueN都是常量表達式,也就是說這里的表達式是不能包含變量的,例如,不允許出現(xiàn)1+x。42switch語句的規(guī)則switch(switch-e108Switch語句的規(guī)則關鍵字break是可選的。break語句會立即終止整個switch語句。如果break語句是不存在的,下一個case語句將被執(zhí)行。switch(switch-expression){casevalue1:statement(s)1;break;casevalue2:statement(s)2;break;…casevalueN:statement(s)N;break;default:statement(s)-for-default;}默認情況下(default)是可選的,用來指定沒有一個指定的case與switch表達式匹配時應該采取的操作。

這幾條語句是按順序判斷的,但是他們的順序不影響程序運行結果.然而要有良好的編程風格,因此按順序比較好。習慣上把默認情況放在最后。43Switch語句的規(guī)則關鍵字break是可選的。b109跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

如果ch是'a':44跟蹤switch語句switch(ch){如果ch110跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

ch是'a':45跟蹤switch語句switch(ch){ch是111跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

執(zhí)行這一行語句46跟蹤switch語句switch(ch){執(zhí)行這一行112跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

執(zhí)行這一行語句47跟蹤switch語句switch(ch){執(zhí)行這一行113跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

執(zhí)行這一行語句48跟蹤switch語句switch(ch){執(zhí)行這一行114跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

case

'b':System.out.println(ch);

case

'c':System.out.println(ch);}

Nextstatement;執(zhí)行這一行語句49跟蹤switch語句switch(ch){執(zhí)行這一行115跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

假如chis'a':50跟蹤switch語句switch(ch){假如ch116跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);break;

case

'c':System.out.println(ch);}

Executethisline51跟蹤switch語句switch(ch){Execu117跟蹤switch語句switch(ch){

case

'a':System.out.println(ch);

break;

case

'b':System.out.println(ch);brea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論