第3章運(yùn)算符、表達(dá)式與條件分支語(yǔ)句_第1頁(yè)
第3章運(yùn)算符、表達(dá)式與條件分支語(yǔ)句_第2頁(yè)
第3章運(yùn)算符、表達(dá)式與條件分支語(yǔ)句_第3頁(yè)
第3章運(yùn)算符、表達(dá)式與條件分支語(yǔ)句_第4頁(yè)
第3章運(yùn)算符、表達(dá)式與條件分支語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章運(yùn)算符、表達(dá)式與語(yǔ)句何中越計(jì)算機(jī)科學(xué)學(xué)院上章知識(shí)回顧基本數(shù)據(jù)類(lèi)型邏輯類(lèi)型、整數(shù)類(lèi)型、字符類(lèi)型、浮點(diǎn)類(lèi)型基本數(shù)據(jù)類(lèi)型的轉(zhuǎn)換自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的輸入輸出System.out.printf()數(shù)組(一維數(shù)組、二維數(shù)組)數(shù)組的聲明、創(chuàng)建、數(shù)組元素的使用、數(shù)組的初始化、數(shù)組的引用Contents語(yǔ)句表達(dá)式運(yùn)算符運(yùn)算符Java支持如下運(yùn)算符:算術(shù)運(yùn)算符:+,-,*,/,%,++,--關(guān)系運(yùn)算符:>,<,>=,<=,==,!=邏輯運(yùn)算符:!,&&,||位運(yùn)算符:&,|,^,~,>>,<<,>>>賦值運(yùn)算符:=擴(kuò)展賦值運(yùn)算符:+=,-+,*=,/=字符串連接運(yùn)算符:+單目運(yùn)算符結(jié)合性是從左到右運(yùn)算符是一些特殊的符號(hào),主要用于數(shù)學(xué)函數(shù)、一些類(lèi)型的賦值語(yǔ)句和邏輯比較方面,JAVA提供了豐富的運(yùn)算符。3.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符主要有:+-*/%(二元運(yùn)算符)++--(單目運(yùn)算符)/:除法例如:7/2結(jié)果是3為什么不是3.5?%:取余例如:12%10結(jié)果是2+-還可以作為數(shù)據(jù)的正負(fù)符號(hào)inta=5;b=3;intc=a/b;intd=a%b;程序結(jié)果是?算術(shù)運(yùn)算符++--(自增自減運(yùn)算符、單目)可以放在操作數(shù)之前也可以放在操作數(shù)之后(操作數(shù)必須是一個(gè)整型或者浮點(diǎn)型變量)自增自減運(yùn)算符的作用是使變量的值增1或者減1++x:使用x前,先使x的值加1--x:使用x前,先使x的值減1x++:使用x之后,使x的值加1x--:使用x之后,使x的值減1例如:inta=b=3;intc=a++;intd=++b;結(jié)果是?inta=b=3;intc=a--;intd=--b;結(jié)果是?自加自減運(yùn)算符例題注意??!請(qǐng)看課后習(xí)題1算術(shù)混合元算的精度:按照運(yùn)算符兩邊的操作元的最高精度保留結(jié)果的精度。char類(lèi)型數(shù)據(jù)和整型數(shù)據(jù)運(yùn)算結(jié)果的精度是int。3.2關(guān)系運(yùn)算符關(guān)系運(yùn)算符用來(lái)比較兩個(gè)值的關(guān)系,關(guān)系運(yùn)算符的運(yùn)算結(jié)果是boolean類(lèi)型數(shù)據(jù)。當(dāng)運(yùn)算符對(duì)應(yīng)的關(guān)系成立時(shí),運(yùn)算結(jié)果是true,否則是false。大小關(guān)系運(yùn)算符、等于不等關(guān)系關(guān)系運(yùn)算符運(yùn)算用法舉例結(jié)果==相等于2==1fasle!=不等于2!=1true>大于2>1true<小于2<1false>=大于等于2>=1true<=小于等于2<=1false注意:符號(hào)之間沒(méi)有空格等于符號(hào)==和賦值符號(hào)=的差別3.3邏輯運(yùn)算符邏輯運(yùn)算符:布爾型數(shù)據(jù)的運(yùn)算,運(yùn)算結(jié)果也是布爾型數(shù)據(jù)!——邏輯非:?jiǎn)文?/p>

&&——邏輯與||——邏輯或:雙目例如:1>8&&9>2:1>8||6>2:9>3&&3<2:9>3||3<2:結(jié)果false結(jié)果true結(jié)果是false結(jié)果是trueP23:短路運(yùn)算符3.4賦值運(yùn)算符與擴(kuò)展賦值運(yùn)算符賦值運(yùn)算符=:左邊的操作元必須是變量,不能是常量或表達(dá)式當(dāng)”=“兩側(cè)數(shù)據(jù)類(lèi)型不一致時(shí),可以適用默認(rèn)類(lèi)型轉(zhuǎn)換或使用強(qiáng)制類(lèi)型轉(zhuǎn)換原則進(jìn)行處理注意:可以將整型常量直接賦值給byte、short、char等類(lèi)型變量,而不需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,只要不超出其范圍

byteb=12;charc=100; bytebb=256;//錯(cuò)誤shorts=-32769;//錯(cuò)誤了解擴(kuò)展賦值運(yùn)算符:+=,-+,*=,/=賦值運(yùn)算符例子等價(jià)表達(dá)式+=i+=8i=i+8-=i-=8i=i-8*=i*=8i=i*8/=i/=8i=i/8%=i%=8i=i%83.6位運(yùn)算符位運(yùn)算主要是對(duì)二進(jìn)制位進(jìn)行操作:位運(yùn)算符運(yùn)算用法用法&按位與只有當(dāng)進(jìn)行邏輯操作的兩個(gè)二進(jìn)制位都為1時(shí),操作結(jié)果才為1Op1&op2|按位或當(dāng)進(jìn)行操作的兩個(gè)二進(jìn)制位有一個(gè)為1時(shí),操作結(jié)果為1op1|op2^按位異或當(dāng)進(jìn)行操作的兩個(gè)二進(jìn)制位不相同時(shí),操作結(jié)果才為1op1^op2~按位取反對(duì)操作數(shù)的各個(gè)二進(jìn)制位取反~op1例子:11111010&01011100=0101100011101100|00010101=1111110111000101^01011100=10011001~11000101=00111010請(qǐng)看教材25頁(yè)例題3-2位運(yùn)算符也可以操作邏輯型的數(shù)據(jù),但是和邏輯運(yùn)算符&&、||、!有所不同,請(qǐng)理解教材P25頁(yè)的舉例:((y=1)==0)&&((x=6)==6);((y=1)==0)&((x=6)==6);X的值??請(qǐng)思考:a^a=?0^a=?

如果a^b=c

那么c^b=?請(qǐng)看課后習(xí)題63.7條件運(yùn)算符條件運(yùn)算符是一個(gè)三目運(yùn)算符,它的符號(hào)是?:

需要連接三個(gè)操作元。其中op1為boolean類(lèi)型表達(dá)式,先計(jì)算op1的值,若為true,則整個(gè)三目運(yùn)算的結(jié)果為op2的值,否則整個(gè)運(yùn)算結(jié)果為op3的值運(yùn)算法則:

op1?op2:op3當(dāng)op1的值是true時(shí),op1?op2:op3的運(yùn)算結(jié)果是op2的值;當(dāng)op1的值是false時(shí),op1?op2:op3的運(yùn)算結(jié)果是op3的值;例如:12>8?100:20012<8?100:200例如:intscore=80;intx=-100;Stringtype=score<60?“不及格”:”幾個(gè)”;x==0?0:-1;字符串連接符+“+”除用于算術(shù)加法運(yùn)算外,還可用于對(duì)字符串進(jìn)行連接操作Strings=“hello”+”world”;“+”運(yùn)算符兩側(cè)的操作數(shù)中只要有一個(gè)是字符串(String)類(lèi)型,系統(tǒng)會(huì)自動(dòng)將另外一個(gè)操作數(shù)轉(zhuǎn)換為字符串然后再進(jìn)行連接intc=12;System.out.println(“c=“+c);在進(jìn)行打印的時(shí)候,無(wú)論任何類(lèi)型,都自動(dòng)轉(zhuǎn)換為字符串進(jìn)行打印System.out.println(c);3.5移位運(yùn)算符(難點(diǎn))移位運(yùn)算符用來(lái)對(duì)二進(jìn)制進(jìn)行操作,分為左移位和右移位對(duì)于正數(shù)將高位用0填充;負(fù)數(shù)用1填充,然后再進(jìn)行移位運(yùn)算左移<<“a<<b;”將二進(jìn)制形式的a逐位左移b位,左邊的高位的0和1會(huì)被逐位移出,低位空出的b位補(bǔ)0。對(duì)于byte或short型數(shù)據(jù),a<<n的運(yùn)算結(jié)果是int型精度。例如:bytea=4;a<<1;當(dāng)進(jìn)行a<<1運(yùn)算時(shí),計(jì)算系統(tǒng)首先將a升級(jí)為int型數(shù)據(jù)。帶符號(hào)右移>>“a>>b;”將二進(jìn)制形式的a逐位右移b位,最高位空出的b位補(bǔ)原來(lái)的符號(hào)位(正數(shù)用0,負(fù)數(shù)用1)正數(shù)不斷右移的結(jié)果是0,負(fù)數(shù)不斷右移的結(jié)果是-1inta=4;a>>11111100011111111111111111111111111111000bytea=-811111111111111111111111111110000在進(jìn)行a<<1運(yùn)算時(shí),首先將11111000升級(jí)為int型:將高位用1填充:

然后再進(jìn)行移位運(yùn)算運(yùn)算符的優(yōu)先級(jí)(補(bǔ)充重點(diǎn))運(yùn)算符優(yōu)先級(jí)運(yùn)算符結(jié)合性1[]()從左到右2!++--+-從右到左3*/%從左到右4+-從左到右5>><<>>>從左到右6>>=<<=從左到右7==!=從左到右8&從左到右9^從左到右10|從左到右11&&從左到右12||從左到右13?:從左到右14=從右到左*運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式中運(yùn)算執(zhí)行的先后順序*運(yùn)算符的結(jié)合性決定了相同級(jí)別的運(yùn)算符執(zhí)行的先后順序高低表達(dá)式表達(dá)式是符合一定語(yǔ)法規(guī)則的運(yùn)算符和操作數(shù)的序列a5.0+a(a-b)*c-4i<30&&i%10!=0表達(dá)式的類(lèi)型和值對(duì)表達(dá)式中操作數(shù)進(jìn)行運(yùn)算得到的結(jié)果稱(chēng)為表達(dá)式的值表達(dá)式值的數(shù)據(jù)類(lèi)型即為表達(dá)式的類(lèi)型表達(dá)式的運(yùn)算順序應(yīng)按照運(yùn)算符的優(yōu)先級(jí)由高到低的順序進(jìn)行優(yōu)先級(jí)相同的運(yùn)算符按照事先約定的結(jié)合方向進(jìn)行請(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的值是多少?JAVA語(yǔ)句Java里的語(yǔ)句可分為以下5類(lèi):(1)方法調(diào)用語(yǔ)句在第4章將介紹類(lèi)、對(duì)象等概念,對(duì)象可以調(diào)用類(lèi)中的方法產(chǎn)生行為,如:例子1中的

reader.nextInt();

(2)表達(dá)式語(yǔ)句一個(gè)表達(dá)式的最后加上一個(gè)分號(hào)就構(gòu)成了一個(gè)語(yǔ)句,稱(chēng)作表達(dá)式語(yǔ)句。分號(hào)是語(yǔ)句不可缺少的部分。例如,賦值語(yǔ)句:x=23;語(yǔ)句(3)復(fù)合語(yǔ)句可以用“{”和“}”把一些語(yǔ)句括起來(lái)構(gòu)成復(fù)合語(yǔ)句,一個(gè)復(fù)合語(yǔ)句也稱(chēng)作一個(gè)代碼塊。例如,

{z=23+x;System.out.println("hello");}(4)控制語(yǔ)句控制語(yǔ)句包括:條件分支語(yǔ)句、循環(huán)語(yǔ)句和跳轉(zhuǎn)語(yǔ)句。(5)package語(yǔ)句和import語(yǔ)句

package語(yǔ)句和import語(yǔ)句與類(lèi)、對(duì)象有關(guān),將在第4章講解??刂普Z(yǔ)句

1、條件分支語(yǔ)句:根據(jù)不同條件,執(zhí)行不同語(yǔ)句1)if…else2)switch開(kāi)關(guān)語(yǔ)句2、循環(huán)語(yǔ)句:重復(fù)執(zhí)行某些動(dòng)作

1)while循環(huán)2)do…while循環(huán)3)for循環(huán)3、跳轉(zhuǎn)語(yǔ)句:

break;continue;條件分支語(yǔ)句:簡(jiǎn)單的if條件語(yǔ)句條件語(yǔ)句可以根據(jù)不同的條件執(zhí)行不同的語(yǔ)句。If條件語(yǔ)句用于告訴程序在某個(gè)條件成立的情況下執(zhí)行某段程序,而在另一種情況下執(zhí)行另外的語(yǔ)句。

1、簡(jiǎn)單的if條件語(yǔ)句:if(boolean類(lèi)型表達(dá)式){

語(yǔ)句或語(yǔ)句塊;}boolean類(lèi)型表達(dá)式:必要參數(shù),表示它最后返回的結(jié)果必須是一個(gè)布爾值。它可以是一個(gè)單純的布爾變量或常量,也可以是使用關(guān)系或者布爾運(yùn)算符的表達(dá)式。語(yǔ)句或語(yǔ)句塊:可選參數(shù),可以是一條或者多條語(yǔ)句,當(dāng)表達(dá)式的值為true時(shí),執(zhí)行這些語(yǔ)句。若只有一條語(yǔ)句,則可以省略條件語(yǔ)句中的{},但最好不要省略。

表達(dá)式語(yǔ)句序列TFIf條件語(yǔ)句的執(zhí)行過(guò)程If條件語(yǔ)句例子publicclassGetif{//創(chuàng)建類(lèi)

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");//如果條件成立,輸出的信息

}}}條件分支語(yǔ)句:if-else語(yǔ)句2、如果滿足某種條件,就進(jìn)行某種處理,否則就進(jìn)行另一種處理。if(boolean類(lèi)型表達(dá)式){

語(yǔ)句或語(yǔ)句塊; }else{

語(yǔ)句或語(yǔ)句塊; }如果if后表達(dá)式的值為true,則執(zhí)行if語(yǔ)句的復(fù)合語(yǔ)句;如果表達(dá)式的值為false,則執(zhí)行else后面的復(fù)合語(yǔ)句。表達(dá)式語(yǔ)句序列語(yǔ)句序列TFif-else語(yǔ)句例子publicclassGetifelse{ publicstaticvoidmain(Stringargs[]){//主方法

intmath=95;//聲明int型局部變量,并賦給初值95 intenglish=56;//聲明int型局部變量,并賦給初值56

if(math>60){//使用if語(yǔ)句判斷math是否大于60 System.out.println("數(shù)學(xué)及格了");//條件成立時(shí)輸出信息

}else{ System.out.println("數(shù)學(xué)沒(méi)有及格");//條件不成立輸出的信息

}

if(english>60){//判斷英語(yǔ)成績(jī)是否大于60 System.out.println("英語(yǔ)及格了");//條件成立輸出的信息

}else{ System.out.println("英語(yǔ)沒(méi)有及格");//條件不成立輸出的信息

} }}請(qǐng)思考:對(duì)于if-else語(yǔ)句如果使用三元運(yùn)算符?:怎么簡(jiǎn)化。if(a>0)

{

b=a;

}

else

{

b=-a;

}b=a>0?a:-a條件分支語(yǔ)句:if-elseif多分支語(yǔ)句(嵌套)3、if-elseif多分支語(yǔ)句多分支語(yǔ)句用于針對(duì)某一事件的多種情況進(jìn)行處理:如果滿足某種條件,就進(jìn)行某種處理,否則如果滿足另一種條件則執(zhí)行另一種處理。if(boolean類(lèi)型表達(dá)式){

語(yǔ)句塊1; }elseif(boolean類(lèi)型表達(dá)式){

語(yǔ)句塊2; }…else{

語(yǔ)句塊n; }條件1條件2條件n語(yǔ)句塊1語(yǔ)句塊2語(yǔ)句塊n語(yǔ)句塊n+1FFFTTTifelseIfelseIfelseIf-elseif多分支選擇:上節(jié)知識(shí)回顧表達(dá)式語(yǔ)句復(fù)合語(yǔ)句控制語(yǔ)句:條件分支、循環(huán)、跳轉(zhuǎn)條件分支:ifelse(簡(jiǎn)單的if、ifelse、嵌套的ifelse)If語(yǔ)句舉例publicclassGetTerm{//創(chuàng)建主類(lèi)

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");//條件成立的輸出信息

}elseif(x>0){//判斷變量x是否大于0 System.out.println("a的值大于0,但小于10");//條件成立的輸出信息

}else{//當(dāng)以上條件都不成立時(shí),執(zhí)行的語(yǔ)句塊

System.out.println("a的值小于0");//輸出信息

} }}}例三:運(yùn)行例3-3嵌套的if語(yǔ)句的例子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ǔ)句:switch語(yǔ)句switch語(yǔ)句是多分支的開(kāi)關(guān)語(yǔ)句:它的形式如下switch(表達(dá)式){case常量值1:若干語(yǔ)句break;case常量值2:若干語(yǔ)句break;……case常量值n:若干語(yǔ)句break;default:若干語(yǔ)句}1、switch語(yǔ)句中表達(dá)式的值必須是整型或字符型2、case子句中的常量值1—n也必須是整型或字符型。,且所有case子句中的值應(yīng)是不同的;3、default子句是任選的;4、break語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后使程序跳出switch語(yǔ)句塊;

switch語(yǔ)句首先計(jì)算表達(dá)式的值,如果表達(dá)式的值與某個(gè)case后面的常量值相同,就執(zhí)行該case里的語(yǔ)句,直到遇到break語(yǔ)句為止。若沒(méi)有任何常量值與表達(dá)式的值相同,則執(zhí)default后面的若干語(yǔ)句。switch語(yǔ)句例子publicclassGetSwitch{//創(chuàng)建類(lèi)

publicstaticvoidmain(Stringargs[]){//主方法

intweek=2;//定義int型變量week switch(week){//指定switch語(yǔ)句的表達(dá)式為變量week case1://定義case語(yǔ)句中的常量為1 System.out.println("Monday");//輸出信息

break; case2://定義case語(yǔ)句中的常量為2 System.out.println("Tuesday"); break; case3://定義case語(yǔ)句中的常量為3 System.out.p

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論